【发布时间】:2014-04-01 16:39:27
【问题描述】:
Java 中处理方法参数/内部错误的正确方法是什么?
这三种方法都做同样的事情,第二个方法略有不同,其中异常也有一个“由”部分。
请注意,在第三种方法中,每次我想退出时都必须重复返回。
还要考虑 java 中的异常处理非常昂贵(我在某处读过这个)。
谢谢!!
public static String method(String arg) {
block: {
if (arg == null) {
logger.error("arg is null");
break block;
}
try {
...
return "ok";
} catch (Exception e)
logger.error("help!", e);
}
}
return "ko";
}
public static String method(String arg) {
try {
if (arg == null) {
throw new Exception("arg is null");
}
...
return "ok";
} catch (Exception e) {
logger.error("help!", e);
return "ko";
}
}
public static String method(String arg) {
String result = "ko";
if (arg == null) {
logger.error("arg is null");
return result;
}
try {
..
result = "ok";
} catch(Exception e) {
logger.error("help!", e);
}
return result;
}
编辑: 另外,在第二种方法中,您可以通过使用 RuntimeException(或自定义的)来区分内部方法错误,坏主意?
【问题讨论】:
-
抛出异常并在几行之外用相同的方法捕获它是没有意义的。否则,第一种和第三种方案之间的选择是个人喜好之一(以及其他设计压力)。
-
我会让方法抛出异常
标签: java exception error-handling