为了账号安全,请及时绑定邮箱和手机立即绑定

异常处理中的异常抛出是怎么设计的,一般程序的抛出异常是程序员考虑好之后直接写进代码里吗?

void test()

{

   throw 10;

}

正在回答

1 回答

可以通过代码检测抛出,举个例子,典型异常捕获除数为零这种情况,可以通过if语句判断是否除数为零,如果为零,则通过throw关键字抛出异常,并通过catch语句去捕捉,给你参照一个小程序:
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;

/**
* 定义函数division
* 参数整型dividend、整型divisor
*/
int division(int dividend, int divisor)
{
 if (0 == divisor)
 {
  // 抛出异常,字符串“除数不能为0”
  throw string("除数不能为0");
 }
 else
 {
  return dividend / divisor;
 }
}

int main(void)
{
 int d1 = 0;
 int d2 = 0;
 int r = 0;
 cin >> d1;
 cin >> d2;
 // 使用try...catch...捕获异常
 try
 {
  division(d1, d2);
 }
 catch (string &)
 {
  cout << "除数不能为0" << endl;
 }

 return 0;
}

当你输入为0,0时调用函数时,if语句捕捉到通过throw扔出,catch捕捉异常。所有异常一般而言都是程序员事先规划好的,也可以笼统用catch(...)捕获。

3 回复 有任何疑惑可以回复我~
#1

junnaxing 提问者

非常感谢!
2017-01-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
C++远征之多态篇
  • 参与学习       66223    人
  • 解答问题       334    个

本教程将带领大家体会面向对象三大特性中的多态特性

进入课程

异常处理中的异常抛出是怎么设计的,一般程序的抛出异常是程序员考虑好之后直接写进代码里吗?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号