当前位置: 首页 > news >正文

优秀网站页面设计图片电影视频网站源码

优秀网站页面设计图片,电影视频网站源码,服装商城网站模板,网页浏览器网址概念 异常事件#xff08;如#xff1a;除 0 溢出#xff0c;数组下标越界#xff0c;所要读取的文件不存在 , 空指针#xff0c;内存不足 等等#xff09; 在 C 语言对错误的处理是两种方法#xff1a; 一是使用整型的返回值标识错误#xff1b; 二是使用 errn…概念 异常事件如除 0 溢出数组下标越界所要读取的文件不存在 , 空指针内存不足 等等 在 C 语言对错误的处理是两种方法 一是使用整型的返回值标识错误 二是使用 errno 宏可以简单的理解为一个全局整型变量去记录错误。 C 异常不可忽略 ( 如果忽略进程结束 ) 。 异常作为一个类可以拥有自己的成员这些成员就可以传递足够的信息。 抛出异常 ---- 捕获异常。 示例 int main(int argc, char *argv[]) {int num 10 / 0;cout OVER endl;return 0; } //不会显示OVER,程序异常结束 抛出异常 语法:throw 值或变量; 例如 throw 0; throw 1.1; throw a; throw abc; 捕获异常 语法 try{ 可能会产生异常的代码 111 222 出现异常 333 } catch( 数据类型 1 变量名 ) {         当throw 的值与数据类型 1 相同进入此处 } catch( 数据类型 2 变量名 ) {         当throw 的值与数据类型 2 相同进入此处 } ... catch(...) {         当throw 的值以上数据类型都不相同进入此处 } 示例 #include iostream #include cstring using namespace std; //异常步骤,抛出异常,捕获异常 int mydiv(int a,int b) {if(b 0){// 抛出异常int num 0;throw num;}return a / b; } void test01(){try{mydiv(10,0);}catch(int e){cout e endl;}catch(char const* s){cout s endl;}catch(...){cout 其他异常 endl;} } int main(int argc, char *argv[]) {test01();return 0; } 栈解旋 概念 异常被抛出后从进入 try 块起 , 到异常被抛掷前 , 这期间在栈上构造的所有对象 , 都会 被自动析构。析构的顺序与构造的顺序相反 , 这一过程称为栈的解旋 示例 class A{ private: int num; public: A(int num):num(num) {cout 构造函数 num endl; } ~A() {cout 析构函数 num endl; } }; void test02() {A a1(1);A a2(2);throw 0; } int main(int argc, char *argv[]) {try{test02();}catch(...){}return 0; } 结果 构造函数1 构造函数2 析构函数2 析构函数1 异常的接口声明 作用 限定异常抛出的类型种类 语法 返回值类型 函数名( 形参列表 )throw( 数据类型 1, 数据类型 2,...) { 函数体 } 注意: 声明异常后,当前函数中只能抛出指定类型的异常 throw():不允许抛出任何异常 示例 void fun01()throw(int,char) {// throw 10;//可以// throw a;//可以// throw 3.14f;//不可以 } void test03(){try{fun01();}catch(int){cout int的异常 endl;}catch(char){cout char的异常 endl;}catch(float){cout float的异常 endl;} } int main(int argc, char *argv[]) {test03();return 0; } 异常对象的生命周期 示例1抛出异常对象 #include iostream #include cstring using namespace std; class B{ private:int num; public:B(int num):num(num){cout 构造函数 num endl;}B(const B b){this-num b.num;cout 拷贝构造 num endl;}~B(){cout 析构函数 num endl;} }; void fun02() {throw B(10); } void test04() {try{fun02();}catch(B b){} } int main(int argc, char *argv[]) {test04();cout OVER endl;return 0; } 结果 示例2抛出异常对象指针 #include iostream #include cstring using namespace std; class B{ private:int num; public:B(int num):num(num){cout 构造函数 num endl;}B(const B b){this-num b.num;cout 拷贝构造 num endl;}~B(){cout 析构函数 num endl;} }; void fun02() {throw new B(10); } void test04() {try{fun02();}catch(B *b){} } int main(int argc, char *argv[]) {test04();cout OVER endl;return 0; } 结果 示例3抛出异常对象引用 #include iostream #include cstring using namespace std; class B{ private:int num; public:B(int num):num(num){cout 构造函数 num endl;}B(const B b){this-num b.num;cout 拷贝构造 num endl;}~B(){cout 析构函数 num endl;} }; void fun02() {throw B(10); } void test04() {try{fun02();}catch(B b){} } int main(int argc, char *argv[]) {test04();cout OVER endl;return 0; } 结果 异常的多态 概念 :   子类异常对象可以被父类异常类型捕获 示例1: class BaseException{}; class MyException01:public BaseException{}; class MyException02:public BaseException{}; void test05() {try{throw MyException01();}catch(BaseException){cout 可以捕获子类异常 endl;} } int main(int argc, char *argv[]) {test05();return 0; } 示例 2: 子类异常重写父类虚函数 class BaseException{ public:virtual void printMsg(){} }; class NullException:public BaseException{ public:virtual void printMsg(){cout 空指针异常 endl;} }; class ArrOutException:public BaseException{ public:virtual void printMsg(){cout 数组下标越界异常 endl;} }; void test05() {try{throw NullException();}catch(BaseException e){e.printMsg();} } int main(int argc, char *argv[]) {test05();return 0; } 标准异常库 简介 标准库中也提供了很多的异常类它们是通过类继承组织起来的。异常类继承层级 . 结构图 所示 标准异常使用 void test06() {try{throw bad_alloc();}catch(exception e){cout e.what() endl;} } int main(int argc, char *argv[]) {test06();return 0; } 自定义异常 步骤 1,定义一个类 2,继承与异常类 3,重写 what 方法 示例 class my_exception:public exception { private:char* msg; public:my_exception(){}my_exception(char* msg){this-msg msg;}const char *what()const noexcept{return msg;} }; void test07() {try{throw my_exception(自定义异常);}catch(exception e){cout e.what() endl;} } int main(int argc, char *argv[]) {test07();return 0; }
http://www.hkea.cn/news/14507992/

相关文章:

  • 内部购物券网站怎么做怎么在自己电脑上做网站
  • 网站建设公司公司我我提供一个平台微擎怎么做网站
  • html网站开发实战教程免费网站建站系统
  • 集团网站推广用vs做购物网站下载
  • 为什么网站建设图片显示不出来如何制作电子印章
  • 设计签名免费网站公司网站优化推广方案
  • 响应式网站价格企业信用报告网上查询
  • 同城的网站建设巨野有做网站的公司吗
  • 商城网站都有哪 些功能html制作网页代码模板
  • 任何判断网站SEO做的好坏长沙专业网站制作
  • 做服装要看国外哪些网站好中山商城型网站建设
  • 邯郸网站建设推广北京网站关键字优化
  • iis asp网站怎么更改wordpress文件上传大小
  • 网站开发建设专业wordpress和shopify
  • 三只松鼠网站推广策略自助建站免费永久
  • 网站流量分析系统intitle:做网站
  • 广州市建设企业网站平台python18+21
  • 网站做seo推广 s软件园专业做网站
  • 在哪个网站可以做酒店预定单sae storage wordpress
  • 做外贸常用那几个网站广告公司的经营模式
  • s上海网站建设个人养老金制度有望年内
  • 淮南餐饮网站建设餐饮类网站设计
  • 农产品网站如何做地推什么是网站域名
  • 常用网站后台地址网站怎么做关键词怎么优化
  • 网站开发技术入股协议网页设计速成培训
  • 建个官方网站要多少钱免费制作ppt软件
  • 高端网站建设大概多少费用取消wordpress 黑标题
  • 做良心网站企业查询系统官网天眼查
  • 做暧暧小视频有声音的网站网站建设好找工作
  • 怎么做影视网站小程序开发官网