The program output is different whether an Error is thrown from main or from the unittest block: void foo(string s) in (s != "hello") { } unittest { foo("hello"); // No stack backtrace } void main() { foo("hello"); // Yes stack backtrace } Ali