Java异常捕获:try{}catch(异常类型){}finally{}

什么是异常:
程序运行时发生的不被期望的事件,阻止了程序的正常运行。

常见的程序错误可以分为三类:
编译错误:没有遵循Java语法规范出错。
运行时错误:程序在执行时出错。
逻辑错误:程序没有按照预期的逻辑执行。

java.long包中有一个java.long.Throwable类,这个类是java中所有错误和异常的超类,它有两个子类:Error类和Exception类。

  1. Error类中包含大量的子类,代表着程序无法处理的错误,比如OutOfMemoryError。
  2. Exception类也包含了大量的子类,代表着程序本身可以处理的错误,也就是异常,比如ArithmeticException。

Error类和Exception类中的RuntimeException类及其子类(例如:ArithmeticException)属于不可查异常,是编译器不要求强制处理的异常,不需要写try-catch语句。
除RuntimeException类及其子类之外的Exception类及其子类(例如:IOException)属于可查异常,是编译器要求必须处理的异常,必须要在方法里面捕获或者抛出,否则无法编译通过。

异常捕获:
有三个关键字:try,catch,finally。
try后面跟一个或多个catch块,或者一个finally块,或者两者的组合。
如果代码中没有进行异常捕获,则默认打印出异常堆栈。

try{
//可能出错的代码段。
}catch(/*要捕获的异常类型A*/){
//出现A类型异常后执行的代码。
}catch(/*要捕获的异常类型B*/){
//出现B类型异常后执行的代码。
}finally{
//不管是否出错都会执行的代码。
}

重要点:

public class T {
	public static int divide(int num1, int num2){
		try {
			int result = num1/num2;
			return result;//result = 5;
		}catch (Exception e){
			System.out.println("出异常");
		}finally {
			System.out.println("finally执⾏了");
			return -2;
		}
	}
	public static void main(String [] args) {
	int result = divide(25, 5);
	System.out.println(result);//-2
	}
}

输出结果:-2
因为finally是一定会执行的代码,try语句执行到return的时候会停止执行return,而去执行finally语句,如果finally语句没有return语句就会继续执行try语句的return。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值