欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java常见问题 try-catch-finally异常处理总结

程序员文章站 2022-04-12 18:32:51
try+catch的处理流程异常体系结构throws关键字此关键字主要在方法的声明上使用,表示方法中不处理异常,而交给调用处处理。RuntimeExcepion与Exception的区别注意观察如下方法的源码:Integer类: public static int parseInt(String text)throws NumberFormatException此方法抛出了异常, 但是使用时却不需要进行try。。。catch捕获处理。原因:因为NumberFormatException...

try+catch的处理流程

Java常见问题 try-catch-finally异常处理总结

异常体系结构

Java常见问题 try-catch-finally异常处理总结

throws关键字

此关键字主要在方法的声明上使用,表示方法中不处理异常,而交给调用处处理

RuntimeExcepion与Exception的区别

注意观察如下方法的源码:
Integer类: public static int parseInt(String text)throws NumberFormatException
此方法抛出了异常, 但是使用时却不需要进行try。。。catch捕获处理。
原因:
因为NumberFormatException并不是Exception的直接子类,而是RuntimeException的子类,只要是RuntimeException的子类,则表示程序在操作的时候可以不必使用try…catch进行处,如果有异常发生,则由JVM进行处理。当然,也可以通过try catch处理。

try-catch-finally 中哪个部分可以省略?

答:catch和finally可以省略其中一个 , catch和finally不能同时省略
注意:格式上允许省略catch块, 但是发生异常时就不会捕获异常了,我们在开发中也不会这样去写代码

try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?

执行流程:
  1. 先计算返回值, 并将返回值存储起来, 等待返回
  2. 执行finally代码块
  3. 将之前存储的返回值, 返回出去;
需注意:
  1. 返回值是在finally运算之前就确定了,并且缓存了,不管finally对该值做任何的改变,返回的值都不会改变
  2. finally代码中不建议包含return,因为程序会在上述的流程中提前退出,也就是说返回的值不是try或catch中的值
  3. 如果在try或catch中停止了JVM,则finally不会执行.例如停电- -, 或通过如下代码退出
    JVM:System.exit(0);

在try中return 引用类型 ,finally中改变引用的属性,结果改变成功,备份的是变量的地址

Java常见问题 try-catch-finally异常处理总结
Java常见问题 try-catch-finally异常处理总结

在try中return 基本类型 ,finally中改变基本类型的值,结果改变失败,备份的是变量值

Java常见问题 try-catch-finally异常处理总结

异常中有System.exit(0) == jvm退出内存,finally不会执行

Java常见问题 try-catch-finally异常处理总结

本文地址:https://blog.csdn.net/qq_43206800/article/details/108257100