【发布时间】:2016-10-18 05:54:46
【问题描述】:
我有以下情况:
try{
auto result = do_something(some_input); //do_something() may throw exceptions
if (result == bad){
do_something_else(some_input);
}
}
catch(...){
do_something_else(some_input);
}
一些解释:
-
do_something()返回bad如果过程成功但过程的准确性不是那么好(计算机视觉过程)。 -
do_something()如果由于缺少某些信息或输入非常错误而无法处理数据,则抛出异常。 - 在 1 和 2 中,我希望流程转到另一个方法,即
do_something_else()。
我的问题:
- 这个设计不好吗?我觉得我使用异常是错误的。
- 是否可以通过以下方式合并它们:
理论代码:
auto result = do_something(some_input); //do_something() may throw exceptions
if (result == bad OR exception was thrown){
do_something_else(some_input);
}
【问题讨论】:
-
result == bad可以扔,有帮助吗? -
@JanGroothuijse 我明白了.. 这可能会有所帮助。谢谢
-
@HumamHelfawi @你在代码中的哪个位置有这个?我的意思是其他类是否显式调用此代码(函数)?
-
@SupunWijerathne 为了简单起见让我们主要说一下
-
@HumamHelfawi 你在 doSome() 和 doSomeOther() 里面有什么样的东西(他们做了什么)?我认为不仅仅是异常处理,您的设计也有问题。 :))