namespace其实就是打包,分割不同程序员的code,或者为用户和实现提供不同的界面。可以通过对using的使用,来选择和组合不同的namespace。namespace可以分散的包含一小段一小段的code,随时补充新的内容。
异常处理就是提供一种机制,在程序遇到错误的时候,throw一个错误信号,代码就会找到相应的异常处理器。在驱动程序中,使用try{}catch{}的模式来保证错误的处理。
namespace Error{
struct Zero_divide {};
struct Syntax_error{
const char* p;
Syntax_error(const char* q) { p = q;}
};
}
主程序中使用
try{
}
catch(Error::Zero_divide){
cerr << "attempt to divide by zero/n";
}
catch(Error::Syntax_error e){
cerr << "syntax error: " << e.p << "/n";
}
检验错误:
if() {
}
throw Error::Zero_divide();
或者
throw Error::Syntax_error("......");