package test_9;public class MyException extends Exception{
    public MyException(String s){
        super(s); //调用父类的构造方法
    }
    public MyException(){
        this("");
    }
}
package test_9;public class Student {
private int m;
public void speak(int m){
try{
if(m<=1000) this.m=m;
else   throw new MyException("数值有误,超过1000LE !");
}catch(MyException e){
System.out.println("数值有误,超过1000!");

}
}
}
以上为源码!
在第一个自定义的异常类中,为何异常类中的异常方法在出现异常后不会执行?
throw new MyException("数值有误,超过1000LE !");
这个语句中括号内的自定义文本内容是用来干嘛的,捕获异常后这个文本也不会被打印。

解决方案 »

  1.   

    在catch内加上e.printStackTrace(); 打印了错误信息。待研究
      

  2.   

    super(s);方法是直接使用父类异常类的打印方法还是怎么?求告知具体调用过程
      

  3.   

    判断异常是在try{语句块内使用if等判断语句还是?
    如果是输入异常如何判断,如要求输入数字但是输入了字母,如何判断?
      

  4.   

    我自己的理解哈:
    1、你那字符串入参是异常的概要描述,可能过异常实例的e.getMessage()方法得到
    2、异常的使用主要好处是你不知道何处扔出来的问题,但异常类可以帮你找到源头,也就是e.printStackTrace()
    你不觉得这个很好用吗:
    dmiaes.client.view.MyException: 数值有误,超过1000LE !
    at dmiaes.client.view.Student.speak(Student.java:11)
    at dmiaes.client.view.Student.main(Student.java:20)
      

  5.   

    明白了,但感觉还是没有太大用处,如果能在catch中直接解决该问题的话会显得有用一些,仅仅报出该错误所在地有时候感觉并没有太大用处。