12.11 Exception
1.类别
-
检查性异常:用户错误或者问题引起的异常,此类异常程序员无法预见。例如:打开一个不存在的文件,用户输入错误(在只能输数字的地方输入汉字)......
-
-
错误:脱离程序员的控制,例如栈溢出等等。
2.异常的体系结构

3.异常处理机制
抛出异常,捕获异常。
try{
//可能出现异常的代码段
}
catch(/*可能出现的异常类型*/){
//发生异常后执行catch里面的代码段
//可以输出异常类型或者结束程序(System.esit())或者打印异常栈信息
}finally{
//处理善后工作,finally可以不要。
}
注意事项
-
try catch必须要,finally可以不用。
-
可以有多个catch,catch捕获的异常必须是从小到大。
主动抛出异常
-
主动抛出异常一般用在方法中使用
-
通过throw和throws关键字,其中throw用在方法里,throws用在方法外
main()
{
int a=1;
int b=0;
new test().sum(a, b);
}
public void sum(int a,int b)
{
if(b==0)
{
throw new ArithmeticException();
}
System.out.println(a/b);
}
结果:


throws:
main()
{
try {
int a=1;
int b=0;
new test().sum(a, b);
}catch (ArithmeticException e)
{
e.printStackTrace();
}
}
public void sum(int a,int b) throws ArithmeticException
{
if(b==0)
{
throw new ArithmeticException();
}
System.out.println(a/b);
}
}
结果:

意义
-
通过throws关键字可以使程序在遇到异常时继续执行下去而不是直接停止。
4.自定义异常
-
通常是自己写一个类,该类继承Exception。


输出结果:

5.总结

浙公网安备 33010602011771号