Exception handling 避免抛出新异常
我有一个if条件,它检查值并抛出新的NumberFormatException 有没有其他方法来编码这个Exception handling 避免抛出新异常,exception-handling,Exception Handling,我有一个if条件,它检查值并抛出新的NumberFormatException 有没有其他方法来编码这个 if (foo) { throw new NumberFormatException } // .. catch (NumberFormatException exc) { // some msg... } 如果您的目标是避免抛出新异常: if(foo) { //some msg... } else { //do something else } 在Java中
if (foo)
{
throw new NumberFormatException
}
// ..
catch (NumberFormatException exc)
{
// some msg...
}
如果您的目标是避免抛出新异常:
if(foo)
{
//some msg...
} else
{
//do something else
}
在Java中,在尝试将字符串转换为数字之前,可以尝试使用正则表达式解析字符串 如果您试图捕获自己的异常(为什么???),您可以这样做:
try { if (foo) throw new NumberFormatException(); }
catch(NumberFormatexception) {/* ... */}
如果您正在做这样的事情:
try
{
// some stuff
if (foo)
{
throw new NumberFormatException();
}
}
catch (NumberFormatException exc)
{
do something;
}
那当然,您可以完全避免异常,并在条件块内执行“do something”部分。如果您试图用其他错误处理机制替换异常的引发,您唯一的选择是返回或设置错误代码-问题是您必须在其他地方检查它
异常是最好的。如果可以以另一种更优雅的方式处理异常,请不要抛出异常。异常非常昂贵,只应用于发生超出您控制范围的情况(例如,数据库服务器没有响应) 如果您试图确保设置了一个值,并且格式正确,您应该尝试以更优雅的方式处理这些条件的失败。例如
if(myObject.value != null && Checkformat(myObject.Value)
{
// good to go
}
else
{
// not a good place to be. Prompt the user rather than raise an exception?
}
如果您知道将导致抛出NumberFormatException的流,请编写代码来处理该情况。你不应该使用异常层次结构作为程序流机制。可能需要使用“代码”标记使你的问题更清晰易读。这个问题不是很清楚你需要重新表述你的问题GustlyWind,我的大脑刚刚抛出了QuestionUnableException。请澄清。@Midhat:没有,但尝试中有阵痛-(什么语言?Java?C?#?你可以在一行上放更多的代码。它仍然是可读的(注:讽刺)。:-)