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

@ -13,7 +13,7 @@ proc main() =
try:
echo "before"
raise newException(CatchableError, "foo")
except AssertionError:
except AssertionDefect:
echo "caught"
echo "after"
@ -27,7 +27,7 @@ proc mainB() =
echo "before"
raise newException(CatchableError, "foo")
# except CatchableError: # would work
except AssertionError:
except AssertionDefect:
echo "caught"
except:
raise

View file

@ -2,7 +2,7 @@ discard """
cmd: "nim c --gc:arc --exceptions:goto --panics:off $file"
output: '''prevented!
caught
AssertionError
AssertionDefect
900'''
"""
@ -30,18 +30,18 @@ proc main(i: int) =
try:
var objA = ObjA()
bplease(ObjB(objA))
except ObjectConversionError:
except ObjectConversionDefect:
echo "prevented!"
try:
takeRange(i)
except RangeError:
except RangeDefect:
echo "caught"
try:
helper()
except AssertionError:
echo "AssertionError"
except AssertionDefect:
echo "AssertionDefect"
echo i * i

View file

@ -1,5 +1,5 @@
discard """
outputsub: "index 2 not in 0 .. 0 [IndexError]"
outputsub: "index 2 not in 0 .. 0 [IndexDefect]"
exitcode: 1
cmd: "nim c --gc:arc --exceptions:setjmp $file"
"""