【发布时间】:2012-01-18 19:41:12
【问题描述】:
我对异常处理(即如何为自己的目的自定义 throw、try、catch 语句)的理解非常差。
比如我定义了一个函数如下:int compare(int a, int b){...}
我希望该函数在 a 或 b 为负数时抛出带有某些消息的异常。
我应该如何在函数的定义中处理这个问题?
【问题讨论】:
-
你应该阅读这个:gotw.ca/publications/mill22.htm.
-
@OliCharlesworth,你不觉得这对那些对基础知识感到困惑的人来说有点过分吗?
-
多余的异常值得避免。如果您不希望您的调用者传递负值,则通过将
unsigned int指定为函数签名中的参数来使其更加明显。再说一次,我认为你应该只为真正异常的事情抛出和捕获异常。 -
@Mark:我最初误解了这个问题是关于是否应该在函数上使用
throw()异常规范。 -
更通俗点,有this,表示可以
throw 5;或throw "Bad!";和catch (...) { }等...