cpp的异常
我们得区分异常,bug,逻辑错误
什么是异常?
提供一种安全方法,用于程序可以预见,但不常见的情况
如何使用他们?带来的问题?
try{
}catch(...){
}
手工引发异常
throw “exception”;
创建异常类
//
// main.cpp
// use_exception
//
// Created by bikang on 16/11/1.
// Copyright (c) 2016年 bikang. All rights reserved.
//
#include <exception>
#include <iostream>
using namespace std;
class MyException:public exception
{
public:
MyException(const char*what):m_what(what){
}
virtual const char *what() const throw()
{
return m_what;
}
private:
const char *m_what;
};
void testException(){
try
{
throw MyException("my exception");
}
catch (MyException &e){
std::cout << e.what() << std::endl;
}
}
void texception();
int main(int argc, const char * argv[]) {
texception();
return 0;
}
void texception(){
cout << "test exception" << endl;
try {
throw " throw excepiton";
} catch (const char *ex) {
cout << "\n"<< ex << endl;
}
cout << "done" <<endl;
//自定义异常
testException();
}