|
|
1
16
试一试
|
|
|
2
16
C++ allows you a variety of options for catching: value, reference or pointer. 请注意,此代码只捕获引用或值传递的std::exceptions:
很可能是指针传递了异常:
检查引发异常的代码,看看它是如何处理的。 正如马克指出的那样,如果你以值而不是参照来捕捉,你就有可能把你的对象切片。 |
|
|
3
7
你可能是对的,尽管很难找到。
首先,GCC明确
does not allow you to throw exceptions in Objective C++ and catch them in C++
()当从ObjuleC++中使用时,ObjtoE-C异常模型此时不会与C++异常互通。这意味着你不能
但是,我认为你正在描述一个实例,其中目标C++调用C++代码,C++代码抛出,希望C++代码捕获异常。不幸的是,我很难找到这个特定案例的文档。有希望,因为,” It is believed to be safe to throw a C++ exception from one file through another file compiled for the Java exception model, or vice versa, but there may be bugs in this area 如果他们能为Java做这件事,那么他们有可能为目标C++做这件事。
至少,您需要指定
|
|
|
4
5
一个鲜为人知的带有异常的gotcha与基类的访问有关。
如果你真的要抛出一个类
例如:
通常,这样的处理程序顺序将导致永远不会选择“b”处理程序,而是 这 case“b”私下与“a”冲突,因此不考虑类型“a”的catch处理程序。 |
|
|
5
3
我可以提供两种理论:
|
|
|
6
1
这可能是一个长期的尝试,但在Visual Studio的编译器设置中,有一个选项可以完全关闭异常。也许在gcc/xcode中有类似的东西。 |
|
|
7
0
C++异常可以是任何事情,非常常见。
|
|
|
8
-2
谢谢大家的意见。对于遇到类似问题的人来说,这些都是很好的建议。它现在起作用了,但我不能百分之百地确定我所做的各种改变中的哪一个使事情重新变得理智了。再一次,简化到有用的东西,并从那里建立备份的方法得到了回报。 响应中没有提到的一件事,我认为这是我困惑的一部分,就是确保处理程序使它明显地捕捉到异常。我认为在我对处理程序的一些公式中,它掩盖了这个事实,并将异常传递给更高级别的处理程序。 |
|
|
M.Jane · 组织和编写异常类的正确方法 8 年前 |
|
|
shubham daharwal · java中的内部捕获异常 8 年前 |
|
|
Jon · 如何在不需要任何操作的情况下处理Python异常 8 年前 |
|
|
felix1415 · C++捕获(标准::异常和e)与捕获(…) 8 年前 |
|
k0pernikus · 如何在scala中键入可能引发异常的函数? 8 年前 |