【发布时间】:2015-03-24 04:47:31
【问题描述】:
我正在学习 C++ 2 个月,但在理解 C++ 中的 try-catch 块时遇到了一些问题。我正在使用这本书:编程原理和使用 C++ 的实践,这是我的书所说的:
异常的基本思想是,如果一个函数 find 是一个它无法处理的错误,它不会正常返回,而是抛出一个异常,指出哪里出了问题。任何直接或间接调用者都可以catch异常,即指定如果被调用的代码使用throw怎么办。
“任何直接或间接调用者都可以捕获异常是什么意思?作者是指函数的调用者还是捕获函数?”。我对此感到困惑,你能用简单的方式向我解释一下吗?
【问题讨论】:
-
请注意,您选择了唯一的答案,但您问题中的引用是关于函数的直接或间接调用者。间接意味着调用者调用
foo(),然后调用bar()。bar()抛出,foo()不捕获,但调用者可以捕获。答案中的示例缺少一个函数调用。 -
@juanchopanza 你能用更详细的评论向我解释一下吗?没听懂,抱歉。
-
我不知道该怎么解释。答案有一个直接的函数调用(它称为“间接”),根本没有函数调用(它称为“直接”。)
-
@juanchopanza 为什么错误检查应该在函数调用中进行(在函数的情况下)并且错误处理应该在调用函数中进行?
-
不必如此。但这就是引文所说的。它正在讨论函数调用以及这些函数的调用者在哪里完成错误处理。
标签: c++ exception error-handling try-catch error-checking