文章目录
🐒个人主页
🏅JavaSE系列专栏
📖前言:
本篇博客主要以介绍异常相关概念以及关键字
🎀“异常”的区分
我们在生活中说“代码报异常了”,这种是广义的异常,意思是代码错了(它可能是语法写错了,可能是逻辑错了【如:数组越界。10/0无意义,类型不能相互转换…】,也可能是更严重的问题【如:内存不够用,堆,栈溢出了…】)。
但是在java里所指的:
异常 :(Exception)是指可以通过异常处理机制处理后程序还能正常运行【如:数组越界。10/0无意义,类型不能相互转换…】。
报错:(Error)是指java编译器无法自己解决处理的严重问题【如:内存不够用,堆,栈溢出了…】
🧸异常的结构示意图
🎀运行期异常常见异常
🏅关键字try{},catch{},finally{}
try{}:用于包含可能出异常的代码段【常与catch{}或finally{}或catch{},finally{}联用】
catch{}:用来捕获try{}中第一个出现的异常并进行处理
finally{}:哪怕程序出异常了也必须执行的代码段
int[] a1=new int[2];
try{
//可能出问题的代码
int a=1/0;
a=a1[3];
}catch (Exception e){
//对异常进行的处理
System.out.println("代码报错了!");
}finally {
//哪怕出异常了也必须执行的代码
System.out.println("无论是否有异常,我都会执行!");
}
🏅关键字throws,throw
throws:可以把异常向上抛出,不在此方法中处理,而是交给上一级的方法调用处理【有事儿找大哥】
throw:主动抛出一个异常对象(也可以自定义异常对象)
当代码不满足规则时,可以主动抛出一个异常来告诉程序:“我这里有异常!”
throw new Exception();//主动生成一个编译期异常
🎀异常的常用方法
构造方法 | 方法内容介绍 |
---|---|
异常(String message) | 📖指定的详细消息构造新的异常 |
异常(String message, Throwable cause) | 📖构造一个新的异常与指定的详细信息和原因 |
常用方法 | 方法内容介绍 |
printStackTrace() | 📖【打印异常总体信息】 |
getMessage | 📖【获取报错主要信息】 |