【学习笔记18】java面向对象-运行时异常、编译时异常

xiaoxiao2021-02-28  99

异常体系: --------| Throwable  所有错误或者异常的父类 --------------| Error(错误) --------------| Exception(异常) 异常一般都通过代码处理  ------------------| 运行时异常: 如果一个方法内部抛出了一个运行时异常,那么方法上 可以声明也可以不声明,调用者可以以处理也可以不处理。 ------------------| 编译时异常(非运行时异常、受检异常):  如果一个方法内部抛出了一个编译时异常对象,那么方法上就必须要声明,而且调用者也必须要处理。 运行时异常: RuntimeException以及RuntimeException子类 都是属于运行时异常。

编译时异常: 除了运行时异常就是编译异常。

疑问: 为什么java编译器会如此严格要求编译时异常,对运行时异常如此宽松?

     运行时异常都是可以通过程序员良好的编程习惯去避免,所以java编译器就没有严格要求处理运行时异常。

finally 块;

finally块的 使用前提是必须要存在try块才能使用。 finally块的代码在任何情况下都会执行的,除了jvm退出的情况。 finally非常适合做资源释放的工作,这样子可以保证资源文件在任何情况下都 会被释放。 try块的三种组合方式: 第一种: 比较适用于有异常要处理,但是没有资源要释放的。 try{ 可能发生异常的代码 }catch(捕获的异常类型 变量名){ 处理异常的代码 } 第二种:比较适用于既有异常要处理又要释放资源的代码。 try{ 可能发生异常的代码 }catch(捕获的异常类型 变量名){ 处理异常的代码 }finally{  释放资源的代码; } 第三种: 比较适用于内部抛出的是运行时异常,并且有资源要被释放。   try{ 可能发生异常的代码 }finally{  释放资源的代码; }
转载请注明原文地址: https://www.6miu.com/read-70209.html

最新回复(0)