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==