try/throw/catch

try 保护代码,throw抛出值,catch接受并处理异常

一般格式

try
{
//程序中抛出异常
throw value;
}

catch(valuetype v)
{
//异常处理程序

}

测试示例

#include <iostream>

using namespace std;

int main(int argc,char *argv[])
{

cout<< "In main"<<endl;
//Define a try block, which is code block enclosed by a pair of curly braces {}
try{
cout<< "In the try block being ready to throw an exception"<<endl;
//Since code being protected in the try block,so after the exception is thrown, the program control flow will go to the next catch block.
throw 1;
cout<<"In the try block, because throws an exception, so the code here is not going to be executed"<<endl;

}
//Here must correspond to the definition of at least one catch block, the same it is also enclosed in curly braces
catch(int & value)
{
cout<< "In the catch block, handling the exception errors. the exception value is "<<value<<endl;
cout<< "Backing into main,execution resumes here."<<endl;

}

cout<<"Testing finished!"<<endl;
return 0;
}


try/throw/catch,码迷,mamicode.com

时间: 2024-11-03 05:24:09

try/throw/catch的相关文章

c++ try throw catch

c++ try throw catch 这三者联合使用 , try { statement list; } catch( typeA arg ) { statement list; } catch( typeB arg ) { statement list; } ... catch( typeN arg ) { statement list; } throw放在try中,如果throw执行了,也有相应的catch,就能捕获到相应的值.例子如下 #include <exception> #inc

try throw catch 多个throw 捕获的问题

当有多个throw语句时,catch捕获的是第一个throw语句 <?php $a=1; try{  if($a!=2){   throw new Exception('not equal 2.');} $a=b; if($a!=3){   throw new Exception('not equal 3.');} $a=c; } catch (Exception $e){ echo $e->getMessage(); echo "<br>"; echo $a;

C++中的try throw catch 异常处理

今天在开发过程中调用一个库函数结果库函数有throw操作,当前代码没有对throw进行捕获操作,导致进程在main 函数中捕获到异常导致进程crash.所以借此记录下c++关于try,throw,catch的用法. 程序运行时常会碰到一些异常情况,例如: 做除法的时候除数为 0: 用户输入年龄时输入了一个负数: 用 new 运算符动态分配空间时,空间不够导致无法分配: 访问数组元素时,下标越界:打开文件读取时,文件不存在. 这些异常情况,如果不能发现并加以处理,很可能会导致程序崩溃. 所谓“处理

try throw catch typeid

QString str = ui.ll->text(); try { if (str == NULL) { throw 1; } else { throw 1.2; } } catch (int & e) //参数的类型要与throw中类型保持一致,才能捕捉到:加上&能捕捉到抛出的值 { if (e == 1) { ui.ll->setText("68 04 00 43 00 00 00"); } qDebug()<<typeid(e).name

132.try throw catch介绍

1 #include <iostream> 2 using namespace std; 3 4 //try尝试执行,抛出throw,throw之后语句不再执行 5 //catch处理throw的异常 6 7 void main() 8 { 9 float fl1, fl2; 10 cin >> fl1 >> fl2; 11 12 //尝试执行,抛出类型检测 13 try 14 { 15 if (fl2 < 0.0000001) 16 { 17 throw 1;

【又长见识了】C#异常处理,try、catch、finally、throw

异常处理:程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常.处理这种错误,就叫做异常处理. 1.轻描淡写Try.Catch.Finally.throw用法 在异常处理中,首先需要对可能发生异常的语句进行异常捕捉,try就是用于预测可能出现的异常.捕获异常并对异常进行处理,就在catch中实现.不管异常发生与否,都会执行finally里面的语句.先看一个例子: static void Main(string[] args) { Console.WriteLine("请输入除数:&qu

将DataTable转换为List,将List转换为DataTable的实现类

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Xmh.DBUnit { /// <summary> /// 将DataTable转换为List,将

Eclipse个最实用的快捷键

一个Eclipse骨灰级开发人员总结了他觉得最实用但又不太为人所知的快捷键组合.通过这些组合能够更加easy的浏览源码,使得总体的开发效率和质量得到提升.     1. ctrl+shift+r:打开资源 这可能是全部快捷键组合中最省时间的了.这组快捷键能够让你打开你的工作区中不论什么一个文件,而你仅仅须要按下文件名称或mask名中的前几个字母,比方applic*.xml.美中不足的是这组快捷键并不是在全部视图下都能用. 2. ctrl+o:高速outline 假设想要查看当前类的方法或某个特定

java编程思想读书笔记 第十二章 通过异常处理错误(下)

1.异常的限制 当覆盖方法的时候,只能抛出在基类方法的异常说明里列出的那些异常.这意味着,当基类使用的代码应用到其派生类对象的时候,一样能够工资,异常也不例外. 下面的例子是在编译时施加在异常上面的限制: public class BaseBallException extends Exception {} public class Foul extends BaseBallException{} public class Strike extends BaseBallException{} p