Java异常语法教程
我们已经了解到了
Java异常语法
语法
try{
//do something
}catch(异常类型){
}catch(异常类型){
}catch(异常类型){
}finally{ //可要可不要
}
参数
参数
描述
try
try 是包含逻辑处理的开始,业务逻辑在 try 代码块里面执行,如果有异常会被 catch 住
catch
catch 是如果 try 代码块中的异常类型是 catch 里面的异常类型的同类或者子类,就会执行 catch 代码块代码,catch 可以有一个,也可以有多个。
finally
finally 是无论 try 和 catch 里面执行完后都会执行 finally 代码块里面代码。finally 可要可不要
异常类型
异常类型都是 Exception 的子类
说明
我们在生产业务逻辑中,可以将自己不确定的业务逻辑写在 try 里面,如果有异常,就会执行 catch 里面的代码块。前提是 catch 的异常类型是实际抛出的异常的当前类或者父类。
案例
catch一个异常信息
package com.haicoder.net.except;
public class ExceptionTest{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)\n");
System.out.println("程序开始");
try {
int i = 2;
int j = 0;
int m = i / j;
} catch (Exception e) {
System.out.println("捕获类异常,异常处理代码块!");
}
System.out.println("程序结束");
}
}
运行结果如下:
Exception 类是所有异常类型的父类,所以在 1/0 的时候被捕获了,然后执行了 catch 代码块里面的逻辑。整个代码块没有因为异常而中断继续执行了后面的流程。
catch多个异常信息
package com.haicoder.net.except;
public class ExceptionTest{
public static void main(String[] args){
System.out.println("嗨客网(www.haicoder.net)\n");
System.out.println("程序开始");
try {
int i = 2;
int j = 0;
int m = i / j;
System.out.println("执行我!!!"); //不会执行
} catch (ArithmeticException e) {
System.out.println("捕获类异常,异常处理代码块!,异常类型 " + "ArithmeticException");
}catch (Exception e){
System.out.println("捕获类异常,异常处理代码块!,异常类型 " + "Exception");
}
System.out.println("程序结束");
}
}
运行结果如下
Java 语言中,如果执行遇到了异常,在 try 方法体里面,发生异常的语句后面的代码将不会执行。
除以 0 是算数运算错误异常,所以我们用 ArithmeticException 异常类接收。在异常信息里面,catch 捕获到了一个符合条件的异常信息后就不会再继续执行剩下的 catch 代码块了。
程序中执行了 ArithmeticException 后没有执行 Exception 异常代码块里面的代码。
Java异常语法总结
如果没有异常处理机制,在代码运行过程中发生了异常,程序代码会终止,而使用了异常处理机制,程序的代码会按照我们的意愿按照流程往下执行。这个时候,就需要我们做好异常捕获后的逻辑处理。