我通常倾向于不捕获“异常”,而只捕获我期望方法抛出的异常,我经常听说这是一个很好的做法。
但今天我遇到了这个问题,URLDecoder.decode(string,encoding)
方法引发了 IllegalArgumentException
。
该方法声明为:
public static String decode(String s, String enc)
throws UnsupportedEncodingException{.....
但是它(“如果你查看源代码”)会在三个不同的地方抛出 IllegalArgumentException
。
所以我对更有经验的程序员的问题是,我应该捕获“异常”吗?或者这个方法只是被错误地声明了?
谢谢
最佳答案
不,你不应该捕获这些异常。 IllegalArgumentException 表示前提条件失败。它通常是由程序中的错误引起的,并且应该使您的应用程序崩溃。如果输入来自用户,则检测错误的输入并显示一条重要消息。
如果您的应用程序中有异常处理策略,那么您可以让此异常冒泡。
关于java - 正确捕获异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28943477/