English 中文(简体)
意料之外的例外情况
原标题:unexpected exceptions

我试图使用以下法典来测试“定点——不投机()”。 我期望该守则将产生以下产出:

In function f(), throw const char* object
Call to my_unexpected
Exception in main(): Exception thrown from my_unexpected

但我看上去了一个时间错误:“这一申请要求Runtime以异常方式终止。 因此,问题是什么? 增 编

struct E {
  const char* message;
  E(const char* arg) : message(arg) { }
};

void my_unexpected() {
  cout << "Call to my_unexpected" << endl;
  throw E("Exception thrown from my_unexpected");
}

void f() throw(E) {
  cout << "In function f(), throw const char* object" << endl;
  throw("Exception, type const char*, thrown from f()");
}


int _tmain(int argc, _TCHAR* argv[])
{
      set_unexpected(my_unexpected);
  try {
    f();
  }
  catch (E& e) {
    cout << "Exception in main(): " << e.message << endl;
  }
    return 0;

}
最佳回答

视觉C++没有正确执行例外规定。 如

Visual C++ departs from the ANSI Standard in its implementation of exception specifications.

and in particular

throw(type) - The function can throw an exception of type type. However, in Visual C++ .NET, this is interpreted as throw(...).

here:

除<代码>throw(<>>/code>外,其他功能除外,均按规定使用,但未使用。

由于这一原因,您的<代码>终止<>代码/代码>发送器从未上过,而且由于在你的代码中不存在<代码>const char*的操作员,因此该例外情况没有被排入,申请被异常终止。


无论如何,铭记与<代码>throw()不同的例外规格为:,实际上,新的C++标准(C++11)对其作了解释,引入<编码>,除外,使用了<代码>throw(<>/code>。

问题回答

暂无回答




相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签