This code compiles with dmd 2.063alpha: void foo() nothrow in { throw new Exception(null); } body { } void main() { foo(); } Then it throws at runtime: object.Exception@test.d(3) --------- 0x00402044 in nothrow void test.foo() at ... ... I think that's bad because I think the "nothrow" tag used by the compiler to better optimize functions.