摘要:
异常规范 异常规范的理念看似有前途,但实际的使用效果并不好。 忽视异常规范之前,您至少应该知道它是什么样的,如下所示: double harm(double a) throw(bad_thing); //may throw bad_thing exception double harm(double 阅读全文
posted @ 2019-02-26 08:57
Grooovvve
阅读(745)
评论(0)
推荐(0)
摘要:
通常,引发异常的函数将传递一个对象。这样做的重要优点之一就是,可以利用不同的异常类型来区分不同的函数在不同的情况下引发的异常。 对象可以携带信息,程序员可以根据这些信息来确定异常的原因。 同时,catch块可以根据这些信息来决定采取什么样的措施。 下面是针对函数引发的异常而提供的一种设计: 可以将b 阅读全文
posted @ 2019-02-26 08:56
Grooovvve
阅读(252)
评论(0)
推荐(0)
摘要:
下面介绍如何使用异常机制来处理错误。 C++异常是对程序运行过程中发生的异常情况的一种响应。 异常提供了将控制权从程序的一部分传递到另一部分的途径。 对异常的处理有3个组成部分: 1)引发异常 throw 2)使用处理程序捕获异常 catch 3)使用try块。 try 程序在出现问题时将引发异常, 阅读全文
posted @ 2019-02-26 08:55
Grooovvve
阅读(324)
评论(0)
推荐(0)
摘要:
一种比异常终止更灵活的办法是,使用函数的返回值来指出问题。 例如,ostream类的get(void)成员通常返回下一个输入字符的ASCII码,但到达文件尾时,将返回EOF。 对hmean()来说,这种方法不管用。任何数值都是有效的返回值,因此不存在可以指出问题的特殊值。 在这种情况下,可以使用指针 阅读全文
posted @ 2019-02-26 08:54
Grooovvve
阅读(981)
评论(0)
推荐(0)
摘要:
异常是相对较新的C++功能,有些老式编译器可能没有实现。另外有些编译器可能默认关闭这一特性,需要使用编译器选项来打开它。 这里先讨论一个基本问题: 2.0 * x * y / (x+y) 如果y是x的负值,则上述公式将导致被零除。这是一种不允许的运算。很多新式编译器通过生产一个表示无穷大的特殊浮点值 阅读全文
posted @ 2019-02-26 08:53
Grooovvve
阅读(960)
评论(0)
推荐(0)

浙公网安备 33010602011771号