在异常处理方面,基本上有以下共同点:
1.如果因为 return、 continue 或 break 语句而离开 try 块,会先执行 finally 块,然后再转向新的目标代码。
2.如果 finally 子句抛出了异常,这个异常会取代任何正在抛出的异常。如果 finally 子句使用了 return 语句,就算抛出的异常还没处理,方法也会正常返回。
3.Java有一种方法能让 try 子句退出而不执行finally 子句——调用 System.exit() 方法,让 Java 解释器停止运行。
4.另外try关键字在Java还有另外一个功能,能用来定义处理自动关闭需要清理的资源,而在C#中用using关键字,如下
try (InputStream is = new FileInputStream("/Users/ben/details.txt")) {
// ……处理这个文件
}
using (FileStream output = File.Create("/Users/ben/details.txt"))
{
// ……处理这个文件
}