> few such cases SIGSEGV? you usually can't tell what state your application is in after one of these, so you can't reliably raise or handle it.
Options like `--panics:on` and `exceptions:goto` create a different dialects of the language that libraries you use may or may not support. Whether or not something is a `Defect` is somewhat arbitrary in that each type has its own rules - for example, `var i = @[1]; echo i[1]` raises a `Defect` \- `var t: Table[int, int]; echo t[1]` raises a catchable - you'll need to read the documentation for every function you call, and quite often its implementation, to find out - there's usually no direct technical reason for things being `Defect` \- it's rather a style / design choice.