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.总结
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端