我见过很多异常处理机制,根本没有必要。很多时候,使用简单的if
语句可以更清晰地解决问题。
例如:
......等等。
有人可以举例说明处理异常的更好方法吗?
答案 0 :(得分:1)
随着程序规模的增长,异常变得更加重要。
使用简单的应用程序返回代码可能没问题。但是当一个错误条件需要在处理之前冒出几个级别的堆栈时,使用异常而不是从每个函数传递错误代码开始是有意义的。
此外,当方法已经返回一个值时,从函数中返回错误代码可能也不实际或不可能。
答案 1 :(得分:0)
有时使用异常更清晰。在函数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';
}
}
答案 2 :(得分:0)
当某些意外“事件”的后果无法让应用程序继续运行时,我会使用它。当它发生并且你抓住它时,报告它并关闭应用程序(或者你认为在这种情况下你应该做的任何事情)。