p273~p276:
1、获取异常的更多信息:e.getMessage()。
2、得到异常的实际类型:e.getClass().getName()。
3、当异常之间不存在子类关系,并且异常的处理机制(handler code)是相同时,可以用一个
catch子句捕获这些异常,这样会更高效。例如:catch(FileNotFoundException | UnknownHostException e)
4、在 catch子句中可以抛出一个异常。这样做的原因可能是:只是想记录一个异常,重新将它抛出,而不做任何改变,
或者子系统抛给父系统处理异常。
5、finally子句。无论是否有异常,该子句中的代码都会被执行。
如果一切正常,执行顺序为:try{}中的语句——>finally{}中的语句——>之后的语句
如果有异常,执行顺序为:try{}——>catch{}——>finally{}
6、try语句可以没有 catch只有 finally。
7、在方法内,finally将在return之前执行。