Java- 自定义异常
来源:互联网 发布:淘宝十大动漫周边店 编辑:程序博客网 时间:2024/06/11 14:49
创建用户自定义异常类
- 创建用户自定义异常时
- 继承自Exception类或某个子类Exception类
- 定义属性和方法,或重载父类的方法
重抛异常及异常链接
- 对于异常,不仅要进行捕获处理,有时候还需要将此异常进一步传递给调用者,以便于调用者也能感受到这种异常。这时可以在catch语句块或finally语句块中采取以下三种方式:
- 将当前捕获的异常再次抛出
throw e;
- 重新生成一个异常,并抛出,如
throw new Exception("some msg");
- 重新生成比并抛出一个新异常,该异常中包含了当前异常的信息,如
throw new Exception("some msg", e);
- 可用
e.getCause()
来得到内部异常, 此时除了知道该信息外,还可以知道内部的原因,这种一层一层将异常链接起来的方式,称为异常的链接。
- 将当前捕获的异常再次抛出
public class TheExceptionCause{ public static void main(String[] args) { try{ BankATM.GetBalanceInfo(1234L); }catch(Exception e){ System.out.println("something wrong: "+ e); System.out.println("cause: " + e.getCause()); System.out.println("msg: " + e.getMessage()); } }}class DataHouse{ // 数据库 // 抛出数据库方面的异常 public static void FindData(long ID) throws DataHouseException{ if(ID>0 && ID<1000) System.out.println("id: " + ID); else throw new DataHouseException("cannot find the id"); }}class BankATM{ public static void GetBalanceInfo(long ID) throws MyAppException{ try{ DataHouse.FindData(ID);// 从数据库中查找数据 }catch(DataHouseException e){// 数据库中的异常 throw new MyAppException("invalid id", e);// 抛出应用层的异常 } }}// 自定义DataHouseException异常类class DataHouseException extends Exception{ public DataHouseException(String msg){ super(msg); }}class MyAppException extends Exception{ public MyAppException(String msg){ super(msg); } public MyAppException(String msg, Exception cause){ super(msg, cause); }}-----------OUTPUT----------- something wrong: MyAppException: invalid idcause: DataHouseException: cannot find the idmsg: invalid id
0 0
- Java 异常(Exception)&自定义异常
- Java异常处理-----自定义异常
- Java 异常(Exception)&自定义异常
- JAVA-自定义异常/异常覆盖
- java异常体系、自定义异常
- Java异常之自定义异常
- Java异常之自定义异常
- Java 自定义异常 异常抛出
- Java异常处理--自定义异常
- Java异常之自定义异常
- 自定义异常实战,java封装自定义异常
- Java自定义异常
- java中自定义异常
- 自定义Java异常
- 自定义Java异常
- Java自定义异常类
- Java中的自定义异常
- java自定义异常类
- YUV格式详解
- 【SDOI2008】【BZOJ3231】递归数列
- 部署hadoop集群需要配置的文件
- 配置NTP,同步服务器时间
- 东方通消息中间件(TongLINK/Q)开发实例和java客户端实现
- Java- 自定义异常
- 安卓Handler造成内存泄露问题
- JSON数据解析——jsoncpp源码编辑
- Spring Jms异步消息推送
- Android 事件传递机制
- ORACLE基本数据类型
- 设置pageControl的圆圈大小和图片
- Git 使用规范流程
- Eclipse中svn解决冲突