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

网站建设税费很多网站没有后台

网站建设税费,很多网站没有后台,ip地址直接访问网站,美术馆网站建设总体要求exceptionType是异常类型#xff0c;它指明了当前的 catch 可以处理什么类型的异常#xff1b;variable是一个变量#xff0c;用来接收异常信息。当程序抛出异常时#xff0c;会创建一份数据#xff0c;这份数据包含了错误信息#xff0c;程序员可以根据这些信息来判断到…exceptionType是异常类型它指明了当前的 catch 可以处理什么类型的异常variable是一个变量用来接收异常信息。当程序抛出异常时会创建一份数据这份数据包含了错误信息程序员可以根据这些信息来判断到底出了什么问题接下来怎么处理。 异常既然是一份数据那么就应该有数据类型。C 规定异常类型可以是 int、char、float、bool 等基本类型也可以是指针、数组、字符串、结构体、类等聚合类型。C 语言本身以及标准库中的函数抛出的异常都是 exception 类或其子类的异常。也就是说抛出异常时会创建一个 exception 类或其子类的对象。 exceptionType variable和函数的形参非常类似当异常发生后会将异常数据传递给 variable 这个变量这和函数传参的过程类似。当然只有跟 exceptionType 类型匹配的异常数据才会被传递给 variable否则 catch 不会接收这份异常数据也不会执行 catch 块中的语句。换句话说catch 不会处理当前的异常。 我们可以将 catch 看做一个没有返回值的函数当异常发生后 catch 会被调用并且会接收实参异常数据。 catch 和真正的函数调用的区别 真正的函数调用形参和实参的类型必须要匹配或者可以自动转换否则在编译阶段就报错了。而对于 catch异常是在运行阶段产生的它可以是任何类型没法提前预测所以不能在编译阶段判断类型是否正确只能等到程序运行后真的抛出异常了再将异常类型和 catch 能处理的类型进行匹配匹配成功的话就“调用”当前的 catch否则就忽略当前的 catch。总起来说catch 和真正的函数调用相比多了一个「在运行阶段将实参和形参匹配」的过程。 另外需要注意的是如果不希望 catch 处理异常数据也可以将 variable 省略掉也即写作 try{// 可能抛出异常的语句 }catch(exceptionType){// 处理异常的语句 }这样只会将异常类型和 catch 所能处理的类型进行匹配不会传递异常数据了。 多级 catch 一个 try 对应一个 catch这只是最简单的形式。其实一个 try 后面可以跟多个 catch try{//可能抛出异常的语句 }catch (exception_type_1 e){//处理异常的语句 }catch (exception_type_2 e){//处理异常的语句 } //其他的catch catch (exception_type_n e){//处理异常的语句 }当异常发生时程序会按照从上到下的顺序将异常类型和 catch 所能接收的类型逐个匹配。一旦找到类型匹配的 catch 就停止检索并将异常交给当前的 catch 处理其他的 catch 不会被执行。如果最终也没有找到匹配的 catch就只能交给系统处理终止程序的运行。 多级 catch 的使用 #include iostream #include string using namespace std;class Base{ }; class Derived: public Base{ };int main(){try{throw Derived(); //抛出自己的异常类型实际上是创建一个Derived类型的匿名对象coutThis statement will not be executed.endl;}catch(int){coutException type: intendl;}catch(char *){coutException type: cahr *endl;}catch(Base){ //匹配成功向上转型coutException type: Baseendl;}catch(Derived){coutException type: Derivedendl;}return 0; }运行结果 Exception type: Base 在 catch 中我们只给出了异常类型没有给出接收异常信息的变量。 本例中我们定义了一个基类 Base又从 Base 派生类出了 Derived。抛出异常时我们创建了一个 Derived 类的匿名对象也就是说异常的类型是 Derived。 我们期望的是异常被catch(Derived)捕获但是从输出结果可以看出异常提前被catch(Base)捕获了这说明 catch 在匹配异常类型时发生了向上转型Upcasting。 catch 在匹配过程中的类型转换 C/C 中存在多种多样的类型转换以普通函数非模板函数为例发生函数调用时如果实参和形参的类型不是严格匹配那么会将实参的类型进行适当的转换以适应形参的类型这些转换包括 算数转换例如 int 转换为 floatchar 转换为 intdouble 转换为 int 等。 向上转型也就是派生类向基类的转换。 const 转换也即将非 const 类型转换为 const 类型例如将 char * 转换为 const char *。 数组或函数指针转换如果函数形参不是引用类型那么数组名会转换为数组指针函数名也会转换为函数指针。 用户自定的类型转换。 catch 在匹配异常类型的过程中也会进行类型转换但是这种转换受到了更多的限制仅能进行「向上转型」、「const 转换」和「数组或函数指针转换」其他的都不能应用于 catch。 const 转换以及数组和指针的转换 #include iostream using namespace std;int main(){int nums[] {1, 2, 3};try{throw nums;coutThis statement will not be executed.endl;}catch(const int *){coutException type: const int *endl;}return 0; }运行结果 Exception type: const int *nums 本来的类型是int [3]但是 catch 中没有严格匹配的类型所以先转换为int *再转换为const int *。
http://www.zqtcl.cn/news/118512/

相关文章:

  • 百度云主机上装网站flash怎么做网页
  • 外贸网站能用阿里云吗哔哩哔哩网页版打不开
  • 南宁月嫂网站建设财经直播的网站开发一个多少钱
  • 宁波网站的建设百度网盟推广 网站
  • 大连城乡建设局网站青岛网站建设外贸
  • 石家庄网站建设招聘珠海快速网站建设
  • 网站建设代理ai制作网页
  • 微网站平台怎样做网站wordpress侧栏跟随
  • 手机网站建设好吗湖南省专业建设公司网站的机构
  • 网站代码 字体好用的cms网站
  • 美食网站首页设计用手机怎么看自己做的网站
  • 平台类网站开发怎样做永久网站二维码
  • 网站开发客户挖掘php网站开发心得3500字
  • 检察院做网站的目的青岛网站推广优化
  • dede替换网站模板定制网站建设的流程
  • 天津专业网站制作网站开发模板
  • 做二手车网站需要什么怎样建立门户网站
  • 宁波做网站首荐荣盛网络网站建设太仓
  • 购物网站公司要花费多少钱wordpress 菜单 字体加粗
  • 网站模板如何编辑软件crm免费客户管理系统
  • 微信制作网站设计重庆关键词优化软件
  • 网站的设计与应用论文平台推广计划书模板范文
  • 网站备案用户名忘了怎么办网站做301排名会掉
  • 厦门制作网站企业网站子域名怎么做
  • 青岛微网站开发品牌建设青之见
  • 淄博哪有培训做网站的湖南营销型网站建设企业
  • 动物网站建设深圳最好的营销网站建设公司
  • 各种网站制作陕西建设厅证件查询网站
  • 如何提高一个网站如何做简单网站
  • 游戏网站开发找什么人可建智慧园区设计方案