获得对异常对象的访问,而该对象含有重要的出错信息。一般化异常处理代码象这样:
try { ... } catch(System.Exception e) { ... }
注意,你不能用ref或out 修饰符传递 e 对象给一个方法,也不能赋给它一个不同的值。
7.2.2 使用 try 和 finally 清除异常 如果你更关心清除而不是错误处理, try 和 finally 会获得你的喜欢。它不仅抑制了出错消息,而且所有包含在 finally 块中的代码在异常被引发后仍然会被执行。 尽管程序不正常终止,但你还可以为用户获取一条消息,如清单 7.4 所示。
清单 7.4 在finally 语句中处理异常
1: using System; 2: 3: class Factorial 4: { 5: public static void Main(string[] args) 6: { 7: long nFactorial = 1, nCurDig=1; 8: long nComputeTo = Int64.Parse(args[0]); 9: bool bAllFine = false; 10: 11: try 12: { 13: checked 14: { 15: for (;nCurDig <= nComputeTo; nCurDig++) 16: nFactorial *= nCurDig; 17: } 18: bAllFine = true; 19: } 20: finally 21: { 22: if (!bAllFine) 23: Console.WriteLine("Computing {0} caused an overflow exception", nComputeTo); 24: else 25: Console.WriteLine("{0}! is {1}",nComputeTo, nFactorial); 26: } 27: } 28: }
通过检测该代码,你可能会猜到,即使没
|