Error -> Defect for defects (#13908)

* Error -> Defect for defects

The distinction between Error and Defect is subjective,
context-dependent and somewhat arbitrary, so when looking at an
exception, it's hard to guess what it is - this happens often when
looking at a `raises` list _without_ opening the corresponding
definition and digging through layers of inheritance.

With the help of a little consistency in naming, it's at least possible
to start disentangling the two error types and the standard lib can set
a good example here.
This commit is contained in:
Jacek Sieka 2020-04-28 19:56:01 +02:00 • committed by GitHub
commit 7d6cbf290a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
92 changed files with 323 additions and 300 deletions

View file

@ -14,7 +14,7 @@ import asyncdispatch, strutils
proc foobar() {.async.} =
if 5 == 5:
raise newException(IndexError, "Test")
raise newException(IndexDefect, "Test")
proc catch() {.async.} =
# TODO: Create a test for when exceptions are not caught.
@ -25,26 +25,26 @@ proc catch() {.async.} =
try:
await foobar()
except IndexError:
except IndexDefect:
echo("Specific except")
try:
await foobar()
except OSError, FieldError, IndexError:
except OSError, FieldDefect, IndexDefect:
echo("Multiple idents in except")
try:
await foobar()
except OSError, FieldError:
except OSError, FieldDefect:
assert false
except IndexError:
except IndexDefect:
echo("Multiple except branches")
try:
await foobar()
except IndexError:
except IndexDefect:
echo("Multiple except branches 2")
except OSError, FieldError:
except OSError, FieldDefect:
assert false
waitFor catch()