异常类
1.异常和异常类
程序错误分类
编译错误:在编译过程中出现的错误
逻辑错误:指程序可正确运行,但未按照预期的要求执行
运行错误:引起程序非正常中断的错误
异常分类:
2.必检异常和免检异常
必检异常: 指程序在编译时会强制程序员在程序中检查并处理的异常。
免检异常: 指在程序编译时不会强制程序员在程序中检查并处理的异常。Error类和RuntimeException类及其子类异常属于免检异常。
3.异常处理机制
Java异常处理主要三种操作:
1.声明异常:在方法头使用throws声明异常
2.抛出异常:使用try{}catch(){}finally{}捕获异常
3.捕获异常:在方法体内使用throw抛出异常
声明异常格式:
public void myMethod() throws 异常类{...}
public void myMethod() throws 异常类1,异常类2,...
捕获异常:
try {
//可能发生异常的程序代码
}catch(Error e){
//处理异常程序代码1
}catch(Exception e){
//处理异常程序代码2
}catch (Throwable e) {
//处理异常程序代码3
}finally{
//无论是否发生异常都要执行的代码程序
}
public class Demo {
public static void main(String[] args) {
//使用除数未零的例子
int num1 = 1;
int num2 = 0;
try{ //try为监控区域
System.out.println(num1/num2);
}catch (ArithmeticException e){ //catch用于捕获异常
System.out.println("程序出现异常");
}finally{ //finally 用于处理善后工作,即一定会运行
System.out.println("程序结束!");
}
}
}
运行结果
public class Demo2 {
public static void main(String[] args) {
//需要捕获多个异常时,需从小到大:(异常分类)
int num1 = 1;
int num2 = 0;
try {
System.out.println(num1/num2);
}catch(Error e){
System.out.println("Error!!!");
}catch(Exception e){
System.out.println("Exception!!!");
}catch (Throwable e) {
System.out.println("Throwable!!!");
}finally{
System.out.println("finally!!!");
}
}
}
结果截图