异常 try cath finally

mac2025-03-31  3

知识点

1.try

try{}//捕捉异常用来检测在try块中的代码是否有异常,和catch连用

2.catch

catch(异常类型){}// try捕捉到异常时才会执行代码块,作用:将捕捉的异常进行处理 和try连用

3.finally

finally{}//无论有没有异常都执行的代码块,一般用来释放资源

4.throws

一般出现在函数后面,抛出可能出现的异常

5.throw

抛出一个异常

实例说明:

1. try catch finally

当没有try catch时
public static void main(String[] age) { int a = 2/0 ; System.out.println("计算成功"); }

可以看出,JVM直接输出红字异常信息并且出现异常之后程序(代码)直接被终止,没有执行后面的输出语句,

使用try catch 对异常进行处理
public static void main(String[] age) { try{//检测是否有异常 int a=2/0; }catch (ArithmeticException e){//对错误信息进行处理 System.out.println("被除数不能为0"); }finally { System.out.println("我是finally我被执行了"); } System.out.println("计算成功"); }

在这里问我们将异常处理(输出异常信息)后,出现异常之后的代码仍然执行出来了,

finally作用
public static void main(String[] age) { try{//检测是否有异常 int a=2/1; }catch (ArithmeticException e){//对错误信息进行处理 System.out.println("被除数不能为0"); }finally { System.out.println("我是finally我被执行了"); } System.out.println("计算成功"); }

本段代码,可以看出并没有捕捉到异常finally被执行了,可以看看上一个例子捕捉到异常finally也被执行了,由此可以得出结论:无论异常有没有异常被捕捉finally都执行

throw throws
public static void main(String[] age)throws ArithmeticException{ System.out.println(f(20,0)); } public static float f(float a , float b){ if(b==0){ //如果数据不符合要求就抛出一个异常 throw new ArithmeticException("被除数不能为0"); } return a/b; } 当数据不符合要求时 throw抛出了一个异常,给调用者,输出函数没有对异常处理的机制又将这个异常抛给main,mian接收到异常,通过theows将异常抛给了jvm,然后就红字输出显示异常信息

博文仅个人理解,欢迎大佬指正!!

最新回复(0)