如何实现一个异常处理机制?
来源:互联网 发布:erp适合 软件行业 编辑:程序博客网 时间:2024/05/21 19:32
在C语言阶段,对于异常处理,我们是这样解决的:
但是,对于错误类型的描述却是很少,我们无法立即判断出错误的类型。
不过,在C++中我们可以后将其信息封装成为一个抽象基类,然后继承,对错误进行分类,然后利用多态的特性,对其错误进行准确的描述:
#include<iostream>#include<string>using namespace std;//实现一个异常处理机制//要实现多态->进行错误类型选择//异常基类class Exception{public: Exception(int errID, string errCode) :_errID(errID) , _errCode(errCode) {} virtual void What()const=0;//纯虚函数, 不是纯虚函数就需要进行定义protected: int _errID; string _errCode;};//数据库类class DBException:public Exception{public: DBException(int errID,string errCode) :Exception( errID,errCode) { } virtual void What()const { cout << "错误码:" <<_errID << endl; cout << "描述符:" << _errCode << endl; }};//网络类class NetException:public Exception{ public: NetException(int errID, string errCode) :Exception(errID,errCode) {} virtual void What() const { cout << "错误码:" << _errID << endl; cout << "描述符:" << _errCode << endl; }};void FunTest1(){ DBException db(1,"数据插入失败"); throw db;}void FunTest2(){ NetException ne(2, "网络连接错误"); throw ne;}int main(){ try { FunTest1(); FunTest2(); } catch (const Exception&e) { cout << typeid(e).name() << endl; e.What(); } catch (...) { cout << "未知异常!" << endl; } return 0;}
0 0
- 如何实现一个异常处理机制?
- 一个模块如何处理异常
- Struts2拦截器实现异常处理机制
- Struts2拦截器实现异常处理机制
- Struts2拦截器实现异常处理机制
- Struts2拦截器实现异常处理机制
- Struts2拦截器实现异常处理机制
- C++异常处理(多态实现机制)
- Struts2拦截器实现异常处理机制
- Struts2拦截器实现异常处理机制
- 【异常/错误处理系列】C语言如何实现异常处理
- C++编译器如何实现异常处理
- C++编译器如何实现异常处理
- C++编译器如何实现异常处理
- C++编译器如何实现异常处理
- C++编译器如何实现异常处理
- C++编译器如何实现异常处理
- C++编译器如何实现异常处理
- 融云即时通讯后续:产品需求与融云的碰撞
- 【CodeForces 627A】XOR Equation(位运算)
- iOS 获取网络链接下的图片宽高
- android app性能优化大汇总(内存性能优化)
- C/C++ sizeof 注意事项
- 如何实现一个异常处理机制?
- 请先切换至Wxml Pannel的解决方法
- Thinking in Java 4th
- dubbo搭建-linux(centos7)下dubbo-admin安装实录(一)
- 作业:c++作业3-项目4
- Linux进程间通信(IPC)
- 网易2016实习研发工程师编程题——寻找第K大
- android app性能优化大汇总
- CSS中一些常用的字体