我試圖拋出新的異常,當args.length沒有任何參數供應,而不是打印出我的消息它打印出ArrayIndexOutOfBounce異常。Java:爲args.length == 0發生新的異常。不起作用?
if (args.length == 0)
{
throw new DeleteFieldException("You must set at least three arguments");
}
我的陷阱:
catch (DeleteFieldException exception)
{
System.err.println(exception);
} // catch
和我定製的異常類:
public class DeleteFieldException extends Exception
{
private String message = null;
public DeleteFieldException()
{
super();
}
public DeleteFieldException (String message)
{
super (message);
this.message = message;
}
public DeleteFieldException (Throwable cause)
{
super (cause);
}
public DeleteFieldException (String message, Throwable cause)
{
super (message, cause);
}
public String toString()
{
return message;
}
public String getMessage()
{
return message;
}
} // DeleteFieldException
另外,我想補充說,對於這種異常,你不想擴展'Exception',你想擴展'RuntimeException',這樣它就不必每次都用try-catch來包裝它被使用了。 – AxiomaticNexus
「如果您只是打印出消息」< - 我希望IDE模板設計人員在'catch'塊中自動生成'e.printStackTrace()'之前記住異常並不意味着什麼...... – fge
@ fge我希望編譯器生成警告.. IDEs是不正確的:) –