这周三海康实习入职,在此之前补了一下异常处理

异常处理这是我在寒假期间看到过的一种c++机制,但是当时并未重视它,最近在网上看到了说企业开发中异常处理的重要性,故昨天看了些有关资料。
首先介绍一下异常处理机制。在程序中我们会碰到一些情况,比如除数为0,年龄键入为负数等。虽然可以用return语句实现函数的返回,但在c++中,它给我们提供了一种更有效的解决办法。即异常处理机制。它可以使异常的引发和异常的处理不必在同一个函数中。return仅仅可以返回到上一层函数,但是异常可以实现函数的跳层。
throw、try、和catch:
throw用于创建一个异常对象并抛出。此时需要有对应类型的catch去接,下面给出除数为0的基本异常处理代码:

#include "iostream"
using namespace std;
void divide(int x,int y)
{
    if(0==y)
        throw x;
    else
    {
        cout<

上述代码中,介绍try的用法。
在我的理解中,任何可能触发异常的语句均应该写在一个try块中,其后接catch语句。在程序运行时,按正常顺序运行程序,若异常没触发,则自动忽略catch语句。
注意点
抛出异常时,必须有对应的catch语句接这个异常,否则会报错。

#include "iostream"
using namespace std;
void divide(int x,int y)
{
    if(0==y)
        throw x;
    else
    {
        cout<

如以上代码中,将catch语句注释,则出现程序无法运行的情况,因为缺少相应的异常处理方法。
异常的抛出和处理可以跨函数

#include "iostream"
using namespace std;
void divide(int x,int y)
{
    if(0==y)
        throw x;
    else
    {
        cout<

接到异常后可以选择不处理,但是应该继续抛出:

#include "iostream"
using namespace std;
void divide(int x,int y)
{
    if(0==y)
        throw x;
    else
    {
        cout<

你可能感兴趣的:(这周三海康实习入职,在此之前补了一下异常处理)