Java中的异常类

时间:2015-10-11 02:02:28

标签: java exception exception-handling

异常处理:直接引用教授,"虽然Exception类可以直接在程序中使用,但最好使用特定的异常类。"他没有多大意见,但我有兴趣了解别人的想法,如果他是对的,为什么?

3 个答案:

答案 0 :(得分:6)

您的教授可能意味着抛出SomeTypeException比向Exception投掷一些短信更好。

为什么使用类型化异常更好?

  1. 您可以捕获特定类型的异常。

    try {
        ...
    } catch(ExceptionType1 e) {
        ...
    } catch(ExceptionType2 e) {
        ...
    }
    
  2. 方法抛出的异常类型为程序员提供有关该方法的有价值信息。

    void someMethod() throws SQLException, ParserException { ... }
    

    比以下更有意义:

    void someMethod() throws Exception { ... }
    

答案 1 :(得分:4)

他的意思是没有什么能阻止你做throw new Exception( "this happened" );throw new Exception( "that happened" );

但最佳做法是throw new ThisException()throw new ThatException();

那是因为在其他地方你可以catch( ThisException e )处理它,准确地知道发生了什么,而不必catch( Exception e )并且想知道它是否因为“这个”发生而被抛出,或者因为“那个”发生了。

我一直处于必须做String s = e.getMessage();的情况,然后尝试解析字符串以尝试理解它,并相信我,所有必须做这样的事情都不是很有趣

答案 2 :(得分:1)

我的两分钱:

异常,与API的任何其他部分一样,应该尽可能具体。这与您使用StringIntegerDate而非普通Object的特定类型的原因相同。