【发布时间】:2014-04-19 22:02:12
【问题描述】:
我有一个带有自定义异常的模板类:
MyClass<T>::MyException;
使用我的类时,我只关心是否抛出了异常,以便我可以通过编程方式处理它。因此,当我捕捉到异常时,我不会费心去命名它。
try {
MyClass<T>::MyMethod ();
} catch (typename MyClass<T>::MyException) {
//Act appropriately
}
我想知道我添加引用运算符时是否有任何区别,例如
} catch (typename MyClass::MyException &) {
在任何一种情况下,除了识别类型之外,我最终都不会使用捕获的异常。两者之间是否存在权衡或性能损失?
【问题讨论】:
-
什么是
MyException,您为什么使用typename?单:也不对。 -
从 std::exception 导出你的异常并通过 'const std::exception&' 或通过 'const your_exception&' 捕获,如果你能做一些有用的事情(表明设计缺陷)
标签: c++