版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Logger.getLogger(getClass(.error(e.getMessage,e;这种输出异常的方式一般只适用于开发人员认为此异常不应该暴露给上层的情况,而对于其他的则不应该使用此处理方式。u 将异常处理后重新抛出trycatch(IOException efound = false;throw e;u 将异常转换成其他受查异常重新抛出trytestException(; catch (LoadPluginClassException ee.printStackTrace(;private static void testException( throws LoadPlugin
2、ClassExceptiontry catch (ClassNotFoundException ethrow new LoadPluginClassException(PluginClass not found;运行结果:com.LoadPluginClassException: PluginClass not found从打印出的异常堆栈中看不到到底是加载Class1的时候发生异常还是加载Class2的时候发生异常。这种无法定位到异常源头的处理方式无论是对开发人员还是对正式运行的系统来说都是很恼火的事情。为什么在异常堆栈中看不到在哪里抛出的ClassNotFoundException 呢?因
3、为在Java看来这个LoadPluginClassException是从它被throw的位置抛出的,发生系统异常的地方也就是在这个地方。为了能让Java把原始的异常也打印出来,可以将原始异常做为根异常传递给新抛出的异常即可。trytestException(; catch (LoadPluginClassException ee.printStackTrace(;private static void testException( throws LoadPluginClassExceptiontry catch (ClassNotFoundException ethrow new LoadPl
4、uginClassException(PluginClass not found,e;运行结果:com.LoadPluginClassException: PluginClass not found. 1 more对原始异常进行包装,无论异常抛到哪里,我们都能清晰的看到异常的源头。u 将异常转化为非受查异常抛出与C#、Delphi等语言不同,Java在异常处理方面更加严谨,Java的受查异常要求开发人员必须处理。这在增强了系统的逻辑正确性的同时,也使得代码异常复杂,到处充满着异常抛出、异常声明、异常捕获的代码。开发人员对于自己无法处理的异常有两种方式,一种懒人是直接吃掉异常,另一种追求严谨的开
5、发人员会把异常继续向上抛出,比如:private static void fooBar( throws InstantiationException,IllegalAccessException, ClassNotFoundExceptionint i = Integer.parseInt(obj.toString(;这么一个简单的方法竟然抛出如此多的异常,而且调用者也许也不明白为什么这个方法要抛出ClassNotFoundException,所以调用者也继续向上抛,代码中就充斥着大量的异常声明。越来越多的人发现过多的使用受查异常给代码带来的坏处,所以非受查异常也逐渐被越来越多的人接受,最突出
6、的就是在Spring提供的一些JDBC、ORM等框架中很多地方使用了非受查异常,这样应用程序对其关心的非受查异常可以有选择的进行捕获处理。案例系统中提供了一个将受查异常转换为通用非受查异常的方法:即定义public static CTKRunTimeException toRuntimeException(Throwable eCTKRunTimeException re = new CTKRunTimeException(e;re.setStackTrace(e.getStackTrace(;return re;其中CTKRunTimeException 类的定义如下:public class CTKRunTimeException extends RuntimeExceptionpublic CTKRunTimeException(Throwable causesuper(cause;使用示例:tryint i= Integer.parseInt(“123”;catch(NumberFormatException fethrow ExceptionUtils.toRuntimeException(fe;转化为非受查异常的这种方式不能滥用,应该有选择的使用,这种方式一般适用于一下几种
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流配送培训专员面试全解析
- 2026年财务主管招聘考试题及答案
- 安阳市一中学2025-2026学年初三下学期四调考试生物试题含解析
- 河北省保定曲阳县联考2025-2026学年初三延长假期综合考试生物试题含解析
- 江苏省淮安市市级名校2026年初三年级一模前测试卷4月化学试题含解析
- 广东省深圳市文锦中学2025-2026学年初三下学期教学反馈检测试题试生物试题含解析
- 广东省韶关市乐昌县2026届初三学业质量调研抽测(第三次5月)化学试题含解析
- 苏州工业园区2025-2026学年初三5月考化学试题含解析
- 四川省安岳县达标名校2026届初三5月统一考试化学试题含解析
- 2026年山东省济南市历城重点名校高补班下学期第二次月考生物试题试卷含解析
- 徐州工业职业技术学院单招职业技能测试参考试题库(含答案)
- 秦皇岛地质考察报告
- 抖音取消实名认证申请函(个人)-抖音取消实名认证申请函
- 0~3岁婴幼儿营养与喂养(高职)全套教学课件
- 新闻写作的真实性原则
- 产业经济学-王俊豪主编
- 海岸工程海岸防护概论
- 静态与动态分析指标
- 《铁路技术管理规程》普速铁路部分
- YS/T 690-2009天花吊顶用铝及铝合金板、带材
- GB/T 4937.3-2012半导体器件机械和气候试验方法第3部分:外部目检
评论
0/150
提交评论