自定义异常不抛出

时间:2013-10-02 04:53:20

标签: java

永远不会显示异常。 扩展Exception类并覆盖方法toString。然后调用它。根据条件显示hahah,但它没有显示任何内容......也没有错误。

class Excp extends Exception {

        public String toString() {
            return "hahah";

        }
    }

    public class exc {

        boolean a = false;

        void hey() throws Excp {

            if (a)
                throw new Excp();

        }

        public static void main(String... s) {

            try {
                new exc().hey();
            } catch (Excp e) {
                System.out.println(e);
            }

        }
    }

3 个答案:

答案 0 :(得分:2)

这里

{
    if(a)
    throw new Excp();
}

A是false。永远不要放弃条件,因为在初始化对象时你没有成功。

尝试

try
    {   
        Excp exc = new Excp();
        exc.a= true;
        exc.hey();
    }

旁注:

1)请遵循命名惯例。

2)提供封装。

3)始终格式化代码。

答案 1 :(得分:2)

你的病情

if(a)
因为你已经开始a=false

将返回false。因此if块不会执行语句

throw new Excp();

答案 2 :(得分:1)

我认为您希望使用自己的错误消息进行自定义异常,如果是这样,您可以这样做

class MyException extends Exception{
    MyException(String errorMsg){
         super(errorMsg);
    }
}

class Test{
    public static void main(String[] args){
          if(someCondition)
               throw new MyException("My error message");
    }
}