A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 姬光普 中级黑马   /  2015-5-19 18:15  /  677 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

看了相关的视频后,对自定义异常处理总结(不全):
对于项目中出现的特有的问题,手动通过throw抛出自定义的异常
        1.出现手动抛出throw异常对象后:要么在内部try catch处理,要么在函数上声明让调用者处理
        2.因为父类中已经将所有的异常信息操作都完成了,所子类只要在构造时,将异常信息传递给父类通
                      过super语句。那么就可以直接通过getMessage方法获取自定义的异常信息
        3.必须是自定义类继承Exception
        4.继承Exception原因:异常体系有一个特点,异常对象和异常类都被抛出,因为他们都具有可抛性,
                                          这个可抛性是Throwable这个体系中独有得特点。只有这个体系中的类和对象可以被throw和throws操作
        5.throws和throw区别:throws使用在函数上;throw使用在函数内
                                            throws后面跟异常类,可以跟多个,用逗号隔开;throw后跟的是异常对象
代码举例:


  1. public class Test3_2 {

  2.         /**
  3.          * java 中自定义异常的处理。throws和throw比较
  4.          */
  5.         public static void main(String[] args) {
  6.                 chufa c=new chufa();
  7.                 try{
  8.                         c.xiangchu(4,-1);
  9.                 }
  10.                 catch(fushuException e){
  11.                         System.out.println(e.toString());
  12.                         System.out.println("出现负数");
  13.                 }
  14.                

  15.         }

  16. }

  17. class chufa{
  18.         int xiangchu(int a,int b) throws fushuException{
  19.                 if(b<0)
  20.                         throw new fushuException("程序拒绝计算");
  21.                 return a/b;
  22.         }
  23.        
  24. }

  25. class fushuException extends Exception{
  26.         fushuException(String message){
  27.                 super(message);//因为父类中已经完成了所有必要的任务,所以这里只是把参数传给父类,让父类完成
  28.         }
  29. }
复制代码

结果输出:
  1. org.heima.fushuException: 程序拒绝计算
  2. 出现负数
复制代码


4 个回复

倒序浏览
一般来说都是手动抛出就可以了吧。
回复 使用道具 举报
自定义异常我觉得还是看看老师的比较好
回复 使用道具 举报
学习一下
回复 使用道具 举报
学习一下   
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马