import std.stdio, std.exception;
struct Catcher {
~this() {
try {} catch (Exception e) {
writeln("Woooo!");
throw e;
}
scope (failure) {
writeln("Woooo woooo!");
}
writeln("Destructing...");
}
}
void main() {
scope (failure) writeln("Sensible");
scope (exit) writeln("Always written");
Catcher c1;
scope auto c2 = Catcher();
throw new Exception("Foobar");
}
aW1wb3J0IHN0ZC5zdGRpbywgc3RkLmV4Y2VwdGlvbjsKCnN0cnVjdCBDYXRjaGVyIHsKCX50aGlzKCkgewoJCXRyeSB7fSBjYXRjaCAoRXhjZXB0aW9uIGUpIHsKCQkJd3JpdGVsbigiV29vb28hIik7CgkJCXRocm93IGU7CgkJfQoJCXNjb3BlIChmYWlsdXJlKSB7CgkJCXdyaXRlbG4oIldvb29vIHdvb29vISIpOwoJCX0KCQl3cml0ZWxuKCJEZXN0cnVjdGluZy4uLiIpOwoJfQp9Cgp2b2lkIG1haW4oKSB7CglzY29wZSAoZmFpbHVyZSkgd3JpdGVsbigiU2Vuc2libGUiKTsKCXNjb3BlIChleGl0KSB3cml0ZWxuKCJBbHdheXMgd3JpdHRlbiIpOwoJQ2F0Y2hlciBjMTsKCXNjb3BlIGF1dG8gYzIgPSBDYXRjaGVyKCk7Cgl0aHJvdyBuZXcgRXhjZXB0aW9uKCJGb29iYXIiKTsKfQ==