减去试块在main

2024-01-30 17:48
文章标签 main 减去 试块

本文主要是介绍减去试块在main,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

现在,你应该有怎样的例外工作合理的想法。在这节课中,我们将覆盖更多的一些有趣的例外情况。

未捕获的异常

在过去的几个例子,有相当多的情况下,函数假定其调用者(或另一个函数在调用堆栈)处理的例外。在下面的例子中,假设有人会mysqrt()处理异常,但如果没有人把究竟发生了什么?

这是我们的平方根程序再次,减去试块在main():

#include "math.h" // for sqrt() function
using namespace std;// A modular square root function
double MySqrt(double dX)
{// If the user entered a negative number, this is an error conditionif (dX < 0.0)throw "Can not take sqrt of negative number"; // throw exception of type char*return sqrt(dX);
}int main()
{cout << "Enter a number: ";double dX;cin >> dX;// Look ma, no exception handler!cout << "The sqrt of " << dX << " is " << MySqrt(dX) << endl;
}

现在,让我们说,用户输入的4,和mysqrt(- 4)提出了一个例外。mysqrt()不处理异常,所以程序堆栈的减少及控制返回到main()。但没有异常处理程序,在这里,所以main()终止。在这一点上,我们就终止了我们的应用!

当main()终止与未处理的异常,操作系统会通知你,已发生未处理的异常错误。它是如何依赖于操作系统,但可能包括打印一个错误信息,弹出错误对话框,或简单的崩溃。一些操作系统是比别人少优雅。这通常是你想要完全避免!

抓住所有处理程序

现在,我们发现自己在一个condundrum:函数可以把任何数据类型的例外,如果没有捕获到异常,它会传播到你的程序的顶部,使其终止。因为不知道如何调用功能,甚至实现它是可能的,我们如何才能避免这种情况的发生?

幸运的是,C + +为我们提供了一个机制来捕获所有异常类型。这是被称为一个包罗万象的处理程序。一个捕获所有处理器的工作就像一个正常的CATCH块,除了可以用一种特定类型的捕捉,利用椭圆算子(……)作为型抓。如果你记得的教训7.14,椭圆和为什么要避开他们,椭圆以前用来传递任何类型的一个函数的参数。在这种情况下,他们所代表的任何数据类型的例外。这是一个简单的例子:


这篇关于减去试块在main的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/661045

相关文章

跟我一起玩《linux内核设计的艺术》第1章(四)——from setup.s to head.s,这回一定让main滚出来!(已解封)

看到书上1.3的大标题,以为马上就要见着main了,其实啊,还早着呢,光看setup.s和head.s的代码量就知道,跟bootsect.s没有可比性,真多……这确实需要包括我在内的大家多一些耐心,相信见着main后,大家的信心和干劲会上一个台阶,加油! 既然上篇已经玩转gdb,接下来的讲解肯定是边调试边分析书上的内容,纯理论讲解其实我并不在行。 setup.s: 目标:争取把setup.

main函数执行前、后再执行的代码

一、main结束 不代表整个进程结束  (1)全局对象的构造函数会在main 函数之前执行,          全局对象的析构函数会在main函数之后执行;          用atexit注册的函数也会在main之后执行。  (2)一些全局变量、对象和静态变量、对象的空间分配和赋初值就是在执行main函数之前,而main函数执行完后,还要去执行一些诸如释放空间、释放资源使用权等操作   (3)

Exception in thread main java.lang.NoClassDefFoundError: org/apache/juli/l

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/juli/l MyEclipse整合免安装版的Tomcat7,------> 看图吧 最后这个就可以在myeclipse里,使用你的tomcat,而不是用.bat打开!!!!

eclipse maven工程中src/main/resources目录下创建的文件夹是包图标的解决方法

转载:https://blog.csdn.net/luwei42768/article/details/72268246 如图:在src/main/resources目录下创建的文件夹却以包的图标显示 修改方法: 入下图,按顺序1 ,2,3,4操作,把3处remove,在4处添加** 修改后如下: 然后点击完成后,文件夹图标显示正常了

蓝牙--关于bta_ag_main.cc文件的讲解

讲解代表之前先简单介绍下HF和AG HF(Hands-Free unit)测:是指作为音频网关的远程音频输入和输出机制的设备。它还提供了一些远程控制手段。在蓝牙通信中,HF通常是支持HFP(Hands-Free Profile)协议的设备,例如蓝牙耳机、汽车蓝牙系统等。 AG(Audio Gateway)测:是指作为音频的输入和输出网关的设备。典型的充当音频网关的设备包括手机。 我们这边主要

动态编译_DynamicCompile、反射调用main方法问题JAVA214

来源:http://www.bjsxt.com/ 一、S02E214_01动态编译_DynamicCompile、反射调用main方法问题 代码测试: public class HelloWorld {public static void main(String[] args){System.out.println("Hi!!!!");}} package com.test.

[嵌入式 C 语言] int main(int argc, char *argv[])

在C语言中,main 函数是程序的起点,也就是执行的入口点。main 函数可以接受命令行参数,并且通常定义如下: int main(int argc, char *argv[]) int argc: 这个参数代表“参数计数”(Argument Count),表示传递给程序的命令行参数的数量,包括程序本身的名称。例如,如果你的程序名为 myprogram 并且你在命令行中输入

CMakeCXXCompilerId.cpp:514: multiple definition of `main';

cmake的时候报的这个错误,反复检查了 代码 只有一个main() 方法,后来查看了CMakeCXXCompilerId.cpp: 这个文件,发现在最后cmake 产生了一个main 和我的main 函数冲突;解决办法 手动删掉CMakeCXXCompilerId.cpp 中的main方法,保存后 make就能编译过了。没有找到原因为啥 会这样,我反复试过 重新cmake ,每次都会产生,且别人

java main

java 不能直接在main中直接使用类的非静态方法的原因是main首先是static 的,所以只能对static的数据 成员进行修改。。而非静态成员很有可能对static的数据成员进行了修改。。。并且非静态成员是针对于对象的,只能通过对象进行访问。。