`

如何把“被检查的异常”转换到“不检查的异常”

 
阅读更多

如何把“被检查的异常”转换到“不检查的异常”

在编写程序时,可以从方法中直接抛出异常,但这不是通用的方法。

问题的实质是:挡在一个普通方法里调用别的方法时,要考虑到“我不知道该怎样处理这个异常但是我不想把它‘吞’了,或者打印一些无用的消息”。JDK1.4的异常链提供了一种新德思路来解决这个问题,那就是:直接把“被检查的异常”包装到RuntimeException里面,示例代码如下:

try{
     //。。。to do somthing useful
}catch(IDon'tKnowWhatToDoWithThisCheckedException e){
     throw new RuntimeException(e);
}

 这种方法不用“吞下”异常,也不必把它放到方法的异常说明里面,而异常链还能保证你不会丢失任何原始的异常信息。

【java 编程思想 读书笔记】

1
4
分享到:
评论
2 楼 kissyssong 2011-09-15  
呵呵,:D
1 楼 w7little 2011-08-18  
great!

相关推荐

    类型转换前检查

    否则,`is`检查将返回`false`,`str`不会被赋值,代码会跳过转换,避免了不必要的异常。 除了`is`关键字,还有其他方法可以进行类型检查,例如使用`GetType()`方法或者`typeof`运算符。但是,`is`通常更简洁,更...

    java 数字格式转换异常(NumberFornatException)

    在Java编程语言中,`NumberFormatException`是一个常见的运行时异常,它发生在尝试将字符串转换为特定数字类型(如`Integer`, `Double`, `Float`等)时,如果字符串不能被解析为对应类型的数值,就会抛出这个异常。...

    C# 捕获C/C++异常的例子

    此外,由于C++异常不总是对象,所以可能需要额外的适配器或包装器来桥接这两种语言。 C#的`SafeHandle`和`CriticalFinalizerObject`类可以帮助管理C++资源,确保在不再需要时安全地释放。同时,`__declspec(dll...

    Python异常处理(课件)

    常见的Python异常包括IndexError(索引超出范围)、TypeError(操作符或函数应用于不兼容的类型)、KeyError(访问字典中不存在的键)、ValueError(值错误,如将非数字字符串转换为整数)、NameError(使用了未定义...

    易语言线程结构异常处理

    SE保护内存读写异常通常涉及到线程尝试访问已被系统标记为不可用的内存区域。在易语言中,可以通过设置相应的保护机制来避免这种情况,例如,在读写内存之前检查内存的有效性,或者使用异常处理函数来捕获并处理此类...

    FLEX强制类型转换

    6. **类型转换与异常处理**:在进行类型转换时,可以结合异常处理机制来更好地管理可能出现的问题。 #### 五、总结 通过上述介绍,我们可以看到FLEX中的强制类型转换是一个非常实用的功能。无论是使用`as`关键字...

    Java习题_异常相关的习题_chap11.pdf

    未检查异常(Unchecked Exception),也被称为运行时异常,包括RuntimeException及其子类,如NullPointerException或ArrayIndexOutOfBoundsException,这些异常不需要在编译时期强制处理。 2. 异常的产生和传递 - ...

    java异常详解

    如果可能,将这些已检查异常转换为更通用的、与业务逻辑相关的已检查异常,或者转化为未检查异常,这样可以降低不同层之间的耦合,提高代码的可维护性。 总的来说,理解并熟练运用Java异常处理机制是编写健壮、可...

    Struts处理类型转换错误,如时间转换

    - **自定义转换器**:你可以创建自定义的转换器,重写`convertIfNecessary`方法,当尝试将字符串转换为日期时,添加对非法日期格式的检查和处理。 - **使用拦截器**:Struts2的拦截器机制允许在请求处理之前或之后...

    JAVA实验九异常处理.pdf

    在方法重写时,子类方法抛出的检查型异常不能比超类方法声明的异常类型范围更广。这意味着子类方法必须兼容或提供相同类型的异常处理机制。 8. 异常类的继承结构: 在Java中,所有的异常都继承自Throwable类,它有...

    精讲RestTemplate自定义请求失败异常处理.docx

    默认实现`DefaultResponseErrorHandler`会检查响应的状态码,如果状态码不在200状态码段,就会抛出异常,如`HttpClientErrorException`或`HttpServerErrorException`。 1. `ResponseErrorHandler`接口有两个关键...

    Java常见异常大全.pdf

    检查型异常是指那些在编译时必须要被捕捉或声明抛出的异常,这些异常通常可以预料且可以恢复,如IOException。非检查型异常则包括Error和RuntimeException及其子类,这类异常编译器不会强制要求处理,因为它们通常是...

    利用TEQC的格式转换、数据编辑、质量检查功能写的可视化程序

    用户只需指定数据目录,程序会自动遍历所有文件,依次执行格式转换、数据编辑和质量检查,并将结果汇总到一个Excel文件中。同时,结果的可视化显示使得用户能够快速理解和解析检查结果,便于及时发现问题并进行修正...

    java 异常框架CODE

    如果方法可能抛出检查型异常,但不想在该方法内部处理,可以使用`throws`声明异常,将异常处理的责任传递给调用者。 **自定义异常** 当需要表示特定的错误情况时,可以通过创建新的异常类来扩展`Exception`类或其...

    java常见的异常

    5. **NumberFormatException**:在将字符串转换为数值类型(如`Integer.parseInt()`或`Double.parseDouble()`)时,如果字符串不能被解析为有效数值,会抛出此异常。确保转换前字符串符合数值格式。 6. **...

    对象不能从 DBNull 转换为其他类型

    2. **类型转换失败**:当`dr["score1"]`确实为DBNull.Value时,直接使用`Convert.ToInt32(dr["score1"])`会抛出异常,因为DBNull.Value不能被转换为整型。 #### 解决方案 为了正确处理这种情况,可以采用以下几种...

    Java中的异常处理机制.md

    异常链通常用于异常转换,即在捕获一个异常后,抛出一个新的异常,同时将原始异常传递给新异常,这样高层的异常处理器可以访问到原始异常的信息,有助于调试和错误分析。 在Java异常处理过程中,有以下几点需要注意...

    Java中常见的异常分析

    18. **初始化程序错误:ExceptionInInitializerError** - 静态初始化程序执行时抛出的异常会被封装为此错误。 19. **违法访问错误:IllegalAccessError** - 当访问或修改类的域或方法违反了可见性规则时,会抛出此...

    NET异常处理规范.docx

    多线程程序中的异常不会被主线程自动捕获。确保每个线程都有适当的异常处理机制,避免整个应用程序因单个线程的异常而退出。可以考虑使用`Task.Run`的`ContinueWith`方法来处理异常。 8. **数据库操作的异常处理**...

    android异常类型和处理

    首先,异常在Java中被分为三大类:运行时异常(RuntimeException)、检查时异常(Checked Exception)和错误(Error)。运行时异常通常由编程错误引起,如空指针异常(NullPointerException)、数组下标越界异常...

Global site tag (gtag.js) - Google Analytics