What exceptions can be throw by object constructor / new expression? Following code fails to compile because compiler says that both functions foo and bar can throw. class C { nothrow this () {} } nothrow void foo () { auto c = new C; } nothrow void bar () { auto o = new Object; }