Java自定义异常

       查看 Java 的 API 可以发现 Exception 并没有定义任何方法。它从 Throwable 继承了一些方法,所以创建自定义的异常类时可以继承 Throwable 中的方法。Throwable 主要的方法有以下几种:

  1. public Throwable fillInStackTrace():返回包含一个完全堆栈追踪的 Throwable 对象,这个对象可以被再次抛出。 

  2. public Throwable getCause():返回此 throwable 的 cause。如果 cause 不存在或未知,则返回 null。

  3. public String getMessage():返回此 throwable 的详细消息字符串。

  4. public  StackTraceElement[]getStackTrace():返回一个包含异常堆栈追踪的数组,每个元素表示一个堆栈帧。数组的第零个元素(假定数据的长度为非零)表示堆栈顶部,它是序列中最后的方法调用。通常,这是创建和抛出该 throwable 的地方。数组的最后元素(假定数据的长度为非零)表示堆栈底部,它是序列中第一个方法调用。

  5. public void printStackTrace():将异常堆栈追踪输出到标准错误流。

  6. public  void  printStackTrace(PrintStream s):将此 throwable 及其追踪输出到指定的输出流。

  7. public  void  printStackTrace(PrintWriter s):将此  throwable  及其追踪输出到指定的PrintWriter。

  8. public String toString():返回一个包含异常描述的 String 对象。

public class MyException extends Exception{ 
        MyException() 
        { 
        } 
        MyException(String msg) 
        { 
                 //调用父类的方法 
                super(msg);   
        } 
} 

public class TestMyException{ 
  public static void main(String args[ ]){ 
    //创建自己的异常类对象 
    MyException mec=new MyException("这是我自定义的异常类"); 
    System.out.println(mec.getMessage()); 
    System.out.println(mec.toString()); 
  } 
} 

程序的运行结果如下:

这是我自定义的异常类 
MyException:  这是我自定义的异常类 

class IllegalScoreException extends Exception{ 
    IllegalScoreException(){ 
    } 
    IllegalScoreException(String msg){ 
        //调用父类的构造方法 
        super(msg); 
    } 
} 
public class Score{ 
  public static void main(String args[]){ 
    try{ 
        String level=null; 
        level=scoreLevel(90); 
        System.out.println("90 分的成绩等级为:"+level);   
        level=scoreLevel(120); 
        System.out.println("120 分的成绩等级为:"+level);              
        } 
        catch(IllegalScoreException e){ 
          e.printStackTrace(); 
          } 
        } 
        static String scoreLevel(int score) throws IllegalScoreException{ 
           if(score>=85&&score<=100) 
              return "A"; 
           else if(score>=75&&score<85) 
              return "B"; 
           else if(score>=60&&score<75) 
              return "C"; 
           else if(score<60&&score>=0) 
              return "D"; 
           else 
              throw new IllegalScoreException("非法的分数");   
        } 
} 
程序的运行结果如下:

90 分的成绩等级为:A 
IllegalScoreException:  非法的分数 
                at Score.scoreLevel(Score.java:38) 
                at Score.main(Score.java:19) 




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值