我看到了许多异常处理机制,而这些机制根本就不是必要的。很多时候,使用简单的if语句可以更简洁地解决问题。
例如,类似于:
..。诸若此类。
有人能提供一个更好的方法来处理异常吗?
发布于 2013-08-26 11:24:38
随着程序大小的增加,异常变得更加重要。
对于一个简单的应用程序,返回代码可能很好。但是,当一个错误条件需要在处理之前抛出堆栈的几个级别时,使用异常而不是从每个函数传递错误代码是有意义的。
另外,当一个方法已经返回一个值时,从函数返回一个错误代码也可能是不实际的,也是不可能的。
发布于 2013-08-26 11:24:00
有时使用异常更干净。在函数foo中,由于在check函数中抛出异常,您可以避免检查check返回什么使该函数更简单:
#include<iostream>
using namespace std;
class A{
public:
int a_foo(int index){return _tab[index];}
private:
static int _tab[3];
};
int A::_tab[3]={1,2,3};
void check(int index)
{
if (index < 0 || index > 2)
throw string("invalid index");
}
void foo(A a, int index){
check(index);
cout << a.a_foo(index) << endl;
}
int main()
{
try
{
A a;
foo(a,4);
}
catch(string ex)
{
cerr << ex <<'\n';
}
}发布于 2013-08-26 11:29:46
当某个意外的“事件”导致应用程序无法继续运行时,我会使用它。当它发生并且您捕捉到它时,很好地报告它并关闭应用程序(或者在这种情况下您认为应该做的任何事情)。
https://stackoverflow.com/questions/18442608
复制相似问题