标签:java 处理 抛出 捕获 基础 try catch 异常
异常类:
在java中把各种异常现象进行了抽象形成了异常类
Exception 程序可以处理的,程序员在编译时必须进行预处理,否则编译时报错叫做:编译时异常
RuntimeException 运行时异常,这类异常不需要预处理,通过规范代码可避免
如何避免空指针异常 & 类型转换异常
1)如何避免空指针:
在访问对象的实例成员前,先判断对象是否为null
2)如何避免类型转换异常(ClassCastException)
在转换前先通过instanceof堆中对象是否为目标类型,是的话就转,不是的话不转
Throwable抛出异常:方法getMessage();printStackTrace(); 获取异常信息 打印堆中异常信息
受检异常必须预处理,否则编译报错,有两种预处理方式:
1)捕获处理(try catch)
try catch语法格式:
try{
//对可能产生异常的代码进行检查,如果try代码的某条语句产生了异常立即跳转到catch执行,try代码后面的代码块不再执行 try代码块可能会有多个受检异常需要预处理可以用多个catch
}catch(异常类型 e1){
//捕获异常类型1的异常进行处理,在开发阶段,一般的处理方式:获得异常信息,打印异常跟踪栈信息
e1.printStackTrace(); //在部署后,如果有异常,一般吧异常信息打印到日志文件内
}catch(异常类型 e2){
//捕获异常类型2的异常进行处理,如果捕获的异常有继承关系,先捕获子类异常再捕获父类异常
}finally{
//不管是否产生了异常,总会执行finally语句总会执行,一般情况下会在finally语句中释放资源;
}
捕获异常代码例子:
2)抛出处理
声明抛出了一个异常 谁调用该方法谁处理该异常;在定义方法时把异常抛出,提醒方法的使用者处理异常
在处理异常如何选择是 捕获还是抛出?
1)一般情况下,在调用其他方法时如果方法有受检异常需要处理,选择捕获处理
2)在定义方法时 如果方法体有收件异常需要处理 选择捕获||抛出
如果方法体中通过throw抛出一个异常对象,所在的方法应该使用throw声明该对象
方法覆盖中的异常处理:
子类方法的异常比父类异常更小
a)父类方法未抛出异常,则子类重写方法之后也不抛出异常
b)父类方法抛出异常,子类可抛出父类异常 也可抛出父类的自异常 也可不抛出异常
标签:java,处理,抛出,捕获,基础,try,catch,异常 来源: https://www.cnblogs.com/nanao/p/15122461.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。