java自定义异常
来源:互联网 发布:手机上的数据处理软件 编辑:程序博客网 时间:2024/04/30 21:55
class MyArithmeticException extends ArithmeticException{ public MyArithmeticException(){ } public MyArithmeticException(String errorDescription){ super(errorDescription); } }
第2步 创建异常对象,并抛出该对象。。
public class ExceptionTest{public static int divide(int a,int b) throws MyArithmeticException{ int result; if (b==0) throw new MyArithmeticException("divide by zero"); else result=a/b; return result; } public static void main(String args[ ]) { try{ divide(10,0); }catch(Exception e) { e.printStackTrace(); } }}
当方法divide抛出MyArithmeticException异常时,它同时"抛出"了三方面的信息:
(1) 异常的类型,这里是MyArithmeticException。
(2) 发生异常的位置,可以通过异常的printStackTrace()方法得到。
(3) 异常的信息,在这里是通过指定errorDescription字符串("divide by zero")来表达的。
当程序抛出一个异常的时候,必须选择合适的异常类型,以便方法的调用者程序可以根据异常的类型来作出正确的处理;必须设置有意义的异常信息,以便看到异常或日志记录的用户能明白发生了什么事;必须让stacktrace反映出异常发生的最原始的位置信息。
一个方法所声明抛出的异常,是设计该方法时必须考虑的重要因素。程序员应该站在方法调用者的立场去考虑这个问题,而不是站在书写这个方法的开发者的立场:
(1) 哪些异常是对调用者有意义的 ?调用者可以方便地捕获并处理这些异常。
(2) 哪些异常是调用者应当忽略的?调用者可以把这些异常传递给它们的调用者或用户。
在Java语言规范中,对于一个方法声明异常的数量没有一个硬性的指标,但通常声明较少的异常为好。
当程序员在一个方法中抛出一个异常,即书写一个throws句子时,对于每一个想抛出的异常,首先要考虑:
(1) 方法的调用者接收到这个异常后,能够做些什么?
(2) 方法的调用者是否能够区分异常的不同类型,从而做出不同的处理?
如果考虑后的回答是否定的,那么书写该throws句子的程序员应在该方法中自行处理该异常,或者将它改为对调用者更为有意义的异常。
在设计方法的定义时,将相关的异常组织成对象树,只在方法中声明父类异常,这是保持throws子句稳定性的好方法。当需要增加一种异常时,只需从适当的父类中派生一个异常类即可。不需要修改方法的定义,因而也避免了修改所有该方法调用者的定义代码。
将多个“低级异常”映射到少量“高级异常”的处理方法,还有一个显著的好处:它可以避免throws子句随着方法实现的改变而改变。
在设计方法的初期,就声明这个方法抛出调用者所预期的异常,而不是在方法的实现阶段根据当前的实现方法来决定抛出何种异常。
- Java 异常(Exception)&自定义异常
- Java异常处理-----自定义异常
- Java 异常(Exception)&自定义异常
- JAVA-自定义异常/异常覆盖
- java异常体系、自定义异常
- Java异常之自定义异常
- Java异常之自定义异常
- Java 自定义异常 异常抛出
- Java异常处理--自定义异常
- Java异常之自定义异常
- 自定义异常实战,java封装自定义异常
- Java自定义异常
- java中自定义异常
- 自定义Java异常
- 自定义Java异常
- Java自定义异常类
- Java中的自定义异常
- java自定义异常类
- HD-1017 A Mathematical Curiosity 试题分析
- Spring使用配置文件读取jdbc.properties
- Boost下载安装编译配置使用指南
- html相册(可以送女友^_^)
- 九度OJ(1091)棋盘游戏
- java自定义异常
- 终于解脱了,迎接新生活.
- 使用 Adobe AIR 2 测试版中的麦克风功能
- 重玩动态规划1
- uboot中bootargs参数说明
- struts2标签库详解(一)非UI标签之数据访问标签
- Linux静态IP设置
- [LeetCode]Add Two Numbers
- 此文献给致力于开发flash MMO APRG的人们