Java异常处理机制try catch流程详解

网友投稿 499 2022-12-12


Java异常处理机制try catch流程详解

在项目中遇到try...catch...语句,因为对java异常处理机制的流程不是很清楚,导致对相关逻辑代码不理解。所以现在来总结Java异常处理机制的处理流程:

1.异常处理的机制如下:在方法中用 try... catch... 语句捕获并处理异常,catch 语句可以有多个,用来匹配多个不同类型的异常。对于处理不了的异常或者要转型的异常,在方法的声明处通过 throws 声明异常,通过throw语句拋出异常,即由上层的调用方法来处理该异常。

try {

逻辑程序块

} catch(ExceptionType1 e) {

处理代码块1

} catch (ExceptionType2 e) {

处理代码块2

throw(e); // 再抛出这个"异常"

}

2.Exception 是程序正常运行过程中可以预料到的意外情况,并且应该被开发者捕获,进行相应的处理。

Exception 可以以两种方式出现:

一是发生在程序编译时或运行时发生异常,是被程序抛出,用户没有主动抛出异常;二是用户主动抛出异常,使用throw关键字主动抛出异常。该异常可以是业务逻辑的异常。

try {

// 可能发生异常的语句

} catch(ExceptionType e) {

// 处理异常语句

}

3.执行流程

try语句块中发生了异常

如果try语句块中发生了异常,那么程序就会把对应的异常对象抛出,然后catch语句就会捕获该异常并且处理。

注意:如在try语句块的第二句语句发生异常,那么在第二句以后的语句都不会执行了,转到catch语句块中开始执行。处理完catch语句块的内容,就会执行catch语句块之后的内容

try语句块中没有发生异常

如果try语句块中没有发生异常,那么try语句块中的内容会由上到下依次执行,然后catch语句块会全部被跳过,接下来执行catch语句块之后的内容。

举个栗子:

public class ExceptionTest {

public static void main(String[] args) {

for (int i = 0; i < 3; i++) {

String message = "";

int a = 0;

try{

if (i == 1){

throw new Exception("错误");

}

message = "正确";

a= 123;

}catch (Exception e){

message = e.getMessagbNkDZHbple();

}

System.out.println( "i 等于" + i);

Syshttp://tem.out.println(message );

System.out.println("a = " + a+ "\n");

}

}

}

输出结果分析:

当有i = 2时,用户主动抛出异常,可以看到为 message= "正确";a =123;的赋值语句没有执行, 进入到catch语句块中,然后再执行catch语句块以后的内容message = e.getMbNkDZHbplessage(); 这里message = "错误",因为throw new Exception("错误"); 在抛出异常时赋值了message为"错误";

message = "错误"

a = 0

输出结果

i 等于0

正确

a = 123

i 等于1

正确

a = 123

i 等于2

错误

a = 0


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java动态代理静态代理实例分析
下一篇:JAVA Integer类常用方法解析
相关文章

 发表评论

暂时没有评论,来抢沙发吧~