下面代码的输出结果是()
try {
try {
int i = 0;
object value = 1/i;
} catch(NullReferenceException Exception) {
Console.Write("Null Re Ex");
}
finally {
Console.Write("Cleanup ");
}
} catch {
Console.Write("Generic catch ");
}
下面代码的输出结果是()
try {
try {
int i = 0;
object value = 1/i;
} catch(NullReferenceException Exception) {
Console.Write("Null Re Ex");
}
finally {
Console.Write("Cleanup ");
}
} catch {
Console.Write("Generic catch ");
}
Null Re Ex Cleanup Generic catch
Null Re Ex Cleanup
Cleanup Generic catch
Generic catch Cleanup
此题选C
using System;
namespace HelloWorldApplication
{
public class HelloWorld
{
static void Main(string[] args)
{
try {
try {
int i = 0;
object value = 1/i;
}
catch(NullReferenceException Exception) {
//因为不是除0异常,所以不进这个处理
Console.Write("Null Re Ex");
}
finally {
//1 不管异常有没有被处理,都要执行
Console.Write("Cleanup ");
}
}
catch {
//2 ***没写能处理的具体异常类型,那么默认就是catch(Exception ex)
//因为内部没有处理异常,所以,异常就抛到外部来了
//如果还不处理,就会继续往方法的调用者那儿抛,直到抛到最终用户看到,这可真不好办啊
Console.Write("Generic catch ");
}
}
}
}
usingSystem; namespaceHelloWorldApplication { publicclassHelloWorld { staticvoidMain(string[] args) { try{ try{ inti = 0; objectvalue = 1/i;//1.try将被激活的特定的异常:DivideByZeroException } catch(NullReferenceException Exception) { //2.捕获的异常类型和try块的类型不匹配,所以不执行该输出语句 Console.Write("Null Re Ex"); } finally{ //3. finally 块都要执行 Console.Write("Cleanup "); } } catch{ //4.未指定具体的捕获异常,那么默认就是Exception类型,内部try...catch未解决的在这里全部捕获 //Exception是所以异常的父类,所以会执行输出该语句。 Console.Write("Generic catch "); } } } }