ずっとassertが使えなくて困っていたのですが,ふと思いついて試してみたところ,
AssertError型を自分で捕まえるtry-catchを自分で書かないといけないことがわかりました.
import std.stdio; import std.concurrency; void f() { //try //{ writeln("1"); assert(false); //} //catch(Throwable t) //{ // writeln(t); //} } void main() { auto tid = spawn(&f); readln(); }
コメントアウトをしたままだと
1
コメントを外すと
1 core.exception.AssertError@a(9): Assertion failure
となります.
追記
assertなのでcatchした後に再スローした方がいいかも.
catch (Throwable t) { writeln(t); throw t; }