在另一个线程的评论中告诉我,只要发生任何不寻常的事情,我都应该使用异常,即使它不是致命的脚本。这想出了为我所用结构类似于如下:C++非致命异常处理
return err("File could not be loaded");
这将打印错误到屏幕上,并返回false,终止指令处理。有人建议,除非有例外情况,否则这样做会更好。
问题在于,对于所有意图和目的,程序都是通过控制台控制的语言解释程序,这意味着只要命令输入错误或者解释代码中存在错误,就会出现错误需要显示。
除了这些问题似乎很少被作为例外处理的事实之外,应该如何实施呢?如何使用try块来控制处理路径?例如,目前我的代码如下:
if(!validate(code))
return false; //the validate function already having output the error
else
process(code);
我应该如何保证过程(代码)只执行,如果验证(代码)获得成功吗?我应该只是从catch块中的函数return false;
?这似乎回到了使用返回值处理异常事件的原始问题。这在我看来,最根本的问题是,这些问题是不是在所有的异常,但我听从那些有更多的经验比我
毫无疑问,你会得到很多回答:“例外只适用于特殊情况。”请忽略它们。 – 2010-12-13 21:21:20
@John Dibling:例外或评论? – 2010-12-13 21:27:00
是的,如果你不理睬,你也可以忽略,“使用明确有意义的名称”,“RAII是你的朋友”,“不要添加不必要的耦合”,以及任何其他各种人们说你应该遵循的事情来编写清晰且易于维护的代码。 – 2010-12-13 21:30:01