language-agnostic - 检查错误的首选方式

标签 language-agnostic exception error-handling

如果我想说的话,请检查int是否在两个特定数字之间,最好将其实现为无异常(exception),例如:

int a; //example in C++, but translate into your language of choice...
cin >> a;
if(a < 0 || a > 5)
    cout << "You must enter in a number between 0 and 5 inclusive!" << endl;

还是try-catch块中有异常?
try
{
    int a;
    cin >> a;
    if(a < 0 || a > 5)
        throw "You must enter in a number between 0 and 5 inclusive!" << endl;
}
catch(string msg)
{
    cout << msg << endl;
}

最佳答案

“更好”也不是。如何处理异常情况,错误等,完全取决于确切的情况和代码的设计。当错误导致以下代码被跳过时,try-catch块非常有用。另一方面,当您想让用户知道问题但无论如何继续进行操作(例如,假设为默认值)时,try-catch可能不合适。

此外,某些程序还设计有自定义错误处理代码,以便可以记录和记录错误和异常,并确保程序可以正常运行。如果您使用的是这种系统,则可能根本不使用“throw”,而是使用类似
ErrorHandler.logError(“出问题了!”);

关于language-agnostic - 检查错误的首选方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4319914/

相关文章:

language-agnostic - 一个人需要多长时间才能从内存中输入代码?

php - foreach() 错误处理 - 如何让它不执行任何操作?

algorithm - 两个数字之和为第三个

arrays - 数组与链表

java - 用于引发异常的内联 lambda 语法

java - RandomAccessFile 正确写入文件,但检索记录时失败

php - 数组到字符串的转换

php - PHP错误仅显示一次,刷新后消失

language-agnostic - 以编程方式定位形状——高效打包

java - HSQLDB 神秘异常消息 : "feature not supported"