zoukankan      html  css  js  c++  java
  • 异常处理类

    异常是程序在执行期间产生的问题。C++ 异常是指在程序运行时发生的特殊情况,比如尝试除以零的操作。

    异常提供了一种转移程序控制权的方式。C++ 异常处理涉及到三个关键字:try、catch、throw

    • throw: 当问题出现时,程序会抛出一个异常。这是通过使用 throw 关键字来完成的。
    • catch: 在您想要处理问题的地方,通过异常处理程序捕获异常。catch 关键字用于捕获异常。
    • try: try 块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。
    #include<iostream>
    using namespace std;
    double devide(int a,int b){
     if(b==0){
        throw("分母不能为零");
      }
      return (a/b);
    }
    int main(){
    int a=12;
    int b=0;
    try{
     int c=devide(a,b);
    }catch(const char* p){
     cerr<<p<<endl;
    }
    return 0;
    }

    抛出了一个类型为 const char* 的异常,因此,当捕获该异常时,我们必须在 catch 块中使用 const char*

    自定义异常类 

    #include<iostream>
    #include<exception>
    using namespace std;
    class myException:public exception{
    public:
    const char* what() const throw(){
    return "输入错误";
    }
    };
    int main(){
    myException m;
    try{
    throw myException();
    }catch(myException &e){
     cout<<e.what();
    }
    
    return 0;
    }

    what() 是异常类提供的一个公共方法,它已被所有子异常类重载。这将返回异常产生的原因。

    const throw()不是函数,这个东西叫异常规格说明,表示what函数可以抛出异常的类型,类型说明放到()里,这里面没有类型,就是声明这个函数不抛出异常
    通常函数不写后面的就表示函数可以抛出任何类型的异常

  • 相关阅读:
    TCP带外数据
    ASP.Net Core 返回的json数据,自定义日期格式
    C# 简单的区块链实现
    PowerShell自动部署ASP.NET Core程序到 IIS
    ASP.NET Core依赖注入多个服务实现类
    EF Core 2.0 执行原始查询如何防止SQL注入
    C#7 进入快速迭代道路
    QuartzNet 任务管理系统
    WebApi如何传递参数
    C# 快速高效率复制对象另一种方式 表达式树
  • 原文地址:https://www.cnblogs.com/webcyh/p/11295443.html
Copyright © 2011-2022 走看看