angular Error Boundary in Templates
https://stackblitz.com/edit/error-boundary-angular?file=src/app/error-boundary.component.ts
かしこい
ChangeDetectorRef を detach しておく
エラーをキャプチャしたい領域の TemplateRef を受け取って内部で展開する
ngDoCheck() で ChangeDetectorRef.detectChanges() を呼び出してビューを更新し、 try-catchでエラーを捕捉する
テンプレートの出し分けは別でやればいいので、エラーをキャプチャするだけならContentを使ったこんな感じのインターフェースだともっと使いやすそう
code:html
<error-boundary (error)="onError($event)">
<foo-component></foo-component>
</error-boundary>
https://stackblitz.com/edit/angular-ivy-t4jucx?file=src%2Fapp%2Fapp.component.ts,src%2Fmain.ts