Java捕获异常(入门级)
⭐一、什么是异常
异常就是程序运行时,出现代码报错或者终止代码运行,它阻止了程序正常执行,这就是异常。在Java编译或运行或者运行过程中出现的错误。
Java提供了更加优秀的解决办法:异常处理机制。
⭐二、捕获异常
Java异常机制关键字有:try、catch、finally、throw、throws。
- try – 用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出。
- catch – 用于捕获异常。catch用来捕获try语句块中发生的异常。
- finally – finally语句块总是会被执行。
- throws – 用在方法签名中,用于声明该方法可能抛出的异常。
- throw – 用于抛出异常。
🌠2.1单个异常捕获
基本语法
try{
有可能出现异常的语句 ;
}catch (异常类型 异常对象) {
针对异常进行处理的代码
}finally {
异常的出口
}
代码演示
public class Test2 {
public static void main(String[] args) {
try { //监视代码
//可能出现异常的语句
int[] nums = new int[5];
System.out.println(nums[6]);
}catch (ArrayIndexOutOfBoundsException ex){ //捕捉异常的类型
ex.printStackTrace(); //异常信息
System.out.println(ex.getMessage()); //输出异常的具体消息
}
System.out.println("拜拜!");
}
}
🌠2.2多个异常捕获
基本语法
try{
有可能出现异常的语句 ;
}catch (异常类型1 异常对象) {
针对异常进行处理的代码
}catch (异常类型2 异常对象){
针对异常进行处理的代码
}catch (总异常(未发生的异常) 异常对象){
针对异常进行处理的代码
}finally {
异常的出口
}
代码预览
public class Test {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
double shang=0; //商
try {
//监视可能出现异常的代码
System.out.println("请输入第一个数:");
int num1 = input.nextInt();
System.out.println("请输入第二个数:");
int num2 = input.nextInt();
shang = num1 / num2;
}catch (ArithmeticException ex) { //处理异常的方法1
System.out.println(ex.getMessage());
System.out.println("除数不能为零");
}catch (InputMismatchException ex){ //处理异常的方法2
System.out.println(ex.getMessage());
System.out.println("输入不能为中文");
}catch (Exception ex){ //处理异常的方法3
System.out.println("异常待解决");
}finally {
System.out.println(shang);
System.out.println("拜拜!");
}
}
}
🌠2.3Exception(异常)
Exception(异常)是所有异常中的父类,在代码处理异常的时候运用其他处理异常的类型也应当把Exception异常给添加到后面,防止出现未知异常导致代码的正常运行。
注意:在处理异常的时候Exception(异常)必须放在最后,因为它是所有异常的父级,如果异常之间存在上下级关系,上级需要放在后面。
⭐ 三、总结:
- catch 不能独立存在。
- catch里面不能没有内容
- 在 try/catch 后面添加 finally 块并非强制性要求的。
- try 代码后不能既没 catch 块也没 finally 块。。
- finally里面的代码最终一定会执行(除了JVM退出)
- 如果程序可能存在多个异常,需要多个catch进行捕获。
- 异常如果是同级关系,catch谁前谁后没有关系
- 如果异常之间存在上下级关系,上级需要放在后面
✨最后✨
总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!
如有问题,欢迎评论区批评指正😁
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通