12.11 Exception

12.11exception

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.总结

 

posted @   张满月。  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示