gpt4 book ai didi

C++ 非致命异常处理

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:17:10 25 4
gpt4 key购买 nike

我在另一个线程的评论中被告知,无论何时发生异常情况,我都应该使用异常,即使它对脚本来说不是致命的。这是在我使用类似于以下的结构时出现的:

return err("File could not be loaded");

这会将错误打印到屏幕上,并返回 false,终止指令处理。有人建议在异常(exception)情况下更好地处理这个问题。

麻烦的是,从所有意图和目的来看,该程序是一个语言解释器,通过控制台控制,这意味着任何时候命令输入不正确,或者解释的代码中存在错误,都需要一个错误显示出来。

除了这些看似微不足道的问题都可以作为异常处理之外,又该如何实现呢?如何使用 try block 来控制处理路径?例如,目前我的代码如下所示:

if(!validate(code))
return false; //the validate function already having output the error
else
process(code);

我应该如何确保 process(code) 仅在 validate(code) 成功时执行?我应该从 catch block 中的函数return false; 吗?这似乎又回到了最初使用返回值处理异常事件的问题。在我看来,根本问题在于这些问题根本不是异常(exception),但我尊重那些比我更有经验的人。

最佳答案

如果一个操作在设计上可能成功或失败,而这两种情况都很常见,那么以“明确地”检查错误的方式构建您的命令流可能是最清楚的,例如 bool 值“验证”功能。

当您不想通过错误检查打扰您的常规控制流并希望将检查转移到其他地方(可能是上面的某些函数调用级别)时,异常会派上用场。

你的情况听起来你并不真的需要异常(exception)。如果没有它们,您的代码看起来很干净,请继续使用。

关于C++ 非致命异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4433545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com