一、分析
异常需要封装,但是仅仅封装还是不够的,还需要传递异常。一个系统的友好型的标识,友好的界面功能是一方面,另一方面就是系统出现非预期的情况的处理方式了。
二、场景
比如我们的JEE项目一般都又三层:持久层、逻辑层、展现层,持久层负责与数据库交互,逻辑层负责业务逻辑的实现,展现层负责UI数据的处理。
又这样一个模块:用户第一次访问的时候,需要持久层从user.xml中读取数据,如果该文件不存在则提示用户创建之,那问题就来了:如果我们直接把持久层的异常FileNotFoundException抛弃掉,逻辑层根本无从得知发生任何事情,也就不能为展现层提供一个友好的处理结果,最终倒霉的就是展现层:没有办法提供异常信息,只能告诉用户“出错了,我也不知道出了什么错了”—毫无友好性而言。
正确的做法是先封装,然后传递,过程如下:
1.把FileNotFoundException封装为MyException。
2.抛出到逻辑层,逻辑层根据异常代码(或者自定义的异常类型)确定后续处理逻辑,然后抛出到展现层。
3.展现层自行确定展现什么,如果管理员则可以展现低层级的异常,如果是普通用户则展示封装后的异常。
异常封装如下:
- public classIOException extends Exception{
- //定义异常的原因
- publicIOException(String message){
- super(message);
- }
- //定义异常原因,并携带原始的异常
- publicIOException(String message,Throwable cause){
- super(message,cause);
- }
- //保留原始异常信息
- publicIOExcepiton(Throwable cause){
- super(cause);
- }
- }
链中传递异常代码如下:
- try{
- //DoSomethind
- }catch(Exceptione){
- //这种形式也可以叫异常转译,调用者获得该异常后在调用getCause()方法即可获得Exception的异常信息,如此即可以方便查找异常的根本信息,便于解决问题。
- thrownew IOException(e);
- }
三、建议
异常需要封装和传递,我们在进行系统开发的时候,不要“吞噬”异常,也不要“赤裸裸”的抛出异常,封装后在抛出,或者通过异常链传递,可以达到系统更健壮、友好的目的。
相关推荐
Java异常处理是编程中至关重要的一个环节,它确保了程序在遇到错误时能够优雅地运行,而不是突然崩溃。本实验报告“java实验报告4-异常...在实际项目中,良好的异常处理和日志记录习惯将极大地提高开发效率和软件质量。
### Java 异常艺术:自定义异常的魔力——解锁编程的新维度 #### 第一部分:异常的基石 在 Java 编程中,异常处理是一项重要的技术...合理利用自定义异常,不仅可以提升代码的质量,还能增强程序的健壮性和可维护性。
这份“Java异常学习资料”包含了丰富的资源,帮助你深入理解Java异常机制,提升代码质量。 1. **异常概述** Java异常是一种在程序执行期间发生的错误或不正常情况,它可以是编译时错误,也可以是运行时错误。Java...
Java异常处理是编程过程中的...通过理解并熟练应用上述Java异常处理的知识,开发者能够编写出更健壮、更易于维护的代码,提高程序的稳定性和可靠性。在实际项目中,良好的异常处理策略是确保软件质量的关键因素之一。
Java异常处理是编程中至关重要的一个环节,它帮助开发者在程序出错时捕获并处理错误,确保程序的健壮性和稳定性。以下是关于Java异常处理的一些关键...在实际开发中,应根据具体场景灵活应用这些知识,提高代码质量。
Java异常框架是Java编程语言中处理程序运行时错误和异常的核心机制。在Java中,异常是一种特殊的对象,用于表示程序运行过程中的不正常状态。Java的异常处理模型基于\"异常处理块\",包括try、catch、finally和throw...
在实际编程中,合理使用异常处理可以有效地定位和修复问题,提高代码质量。理解Java异常机制,尤其是如何正确处理受检和非受检异常,对于编写健壮的Java程序至关重要。在面试中,对这些概念的深入理解和应用能力是...
Java编程异常处理最佳实践【推荐】 Java中的异常处理是非常重要的,特别是在大型项目中,异常处理机制的设计和实现将直接...通过学习和掌握不同的异常处理方法,可以提高代码的可靠性和可维护性,提高开发效率和质量。
### Java异常讲解 #### 一、异常的基本概念与重要性 异常是程序运行时发生的非预期情况,它可能由各种因素导致,如非法输入、内存不足等。在Java中,异常处理是一种重要的机制,用于处理运行时错误,使得程序能够...
在Java面试中,异常处理往往是考核的重点,因为它反映了候选人的代码质量、问题解决能力和对语言规范的理解。 1. **Java异常处理机制**:Java异常处理是通过一组关键字(try、catch、finally、throw和throws)来...
### Java语言中的两种异常:深入理解与应用 Java作为一门广泛应用的编程语言,其异常处理机制是其设计中的一大亮点,旨在帮助开发者更好地控制和处理程序运行时可能遇到的错误。在Java中,异常主要分为两大类:`...
通过遵守这些静态检测规则,开发者不仅能够提高代码质量,还能够增强代码的安全性和可维护性。这些规则涵盖了从基本编码实践到高级设计模式的应用,对于任何希望编写健壮、高效Java应用程序的开发者来说都是非常宝贵...
【Java异常处理-自定义异常类及...总的来说,熟练掌握自定义异常是提升Java编程技能的关键一步,它有助于编写出更加专业和高质量的代码。通过不断实践和练习,可以更好地理解异常处理机制,并灵活运用到实际项目中。
Java异常处理是Java编程中一个至关...通过学习和实践这些内容,开发者能更好地处理程序中的异常,提高代码质量。希望这个课件能够帮助你全面掌握Java异常处理的知识,如果在学习过程中有任何疑问,欢迎提出,共同进步。
异常处理机制允许开发者将正常的业务逻辑代码与错误处理代码分离,提高代码的可读性和可维护性。 1. 为什么使用异常? 异常处理机制的主要目的是在程序遇到不可预见的问题时,能够优雅地处理错误而不是让程序崩溃。...
在实际操作中,为了确保转换后的Java代码质量和可读性,需要对转换结果进行审查和调整。此外,理解两种语言的异同以及熟悉Java编程的最佳实践是至关重要的。在进行大型项目转换时,还应考虑测试策略,确保转换后的...
6. **异常链机制**:Java支持异常链,可以追踪异常的发生顺序,这对于调试和问题定位非常有帮助。通过设置和传递cause,可以清楚地看到异常的起因。 7. **自定义异常**:如果Java内置的异常类无法满足特定需求,...
在Java编程语言中,`Arrays`工具类和异常处理机制是两个非常重要的概念。下面将详细解释这两个主题。 首先,`Arrays`工具类是Java `util`包的一部分,...理解并熟练运用这两个概念对于编写高质量的Java代码至关重要。
7. **方法与函数式编程**:编写可重用的方法是提升代码质量的关键。学习如何定义方法,理解参数传递,以及如何使用Java 8引入的函数式编程特性,如Lambda表达式,可以使代码更简洁、高效。 8. **调试与测试**:理解...
Java提供了两种主要的方式来处理异常:`try`语句和声明抛出异常。 - **try语句**:用于捕获并处理一个或多个异常。`try`语句包含`try`块、`catch`块和`finally`块。 - `try`块:包含可能会抛出异常的代码。 - `...