Repository navigation
Expand file tree
/
Copy pathtest_raise_exceptions.py
More file actions
64 lines (48 loc) · 2.08 KB
/
Copy pathtest_raise_exceptions.py
File metadata and controls
64 lines (48 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
"""Raising Exceptions.
@see: https://docs.python.org/3/tutorial/errors.html#raising-exceptions
The raise statement allows the programmer to force a specified exception to occur.
"""
def test_raise_exception():
"""Raising Exceptions.
The raise statement allows the programmer to force a specified exception to occur.
"""
exception_is_caught = False
try:
# The sole argument to raise indicates the exception to be raised. This must be either an
# exception instance or an exception class (a class that derives from Exception). If an
# exception class is passed, it will be implicitly instantiated by calling its constructor
# with no arguments
raise NameError('HiThere') # shorthand for 'raise ValueError()'
raise NameError("someerror")
except NameError:
exception_is_caught = True
assert exception_is_caught
def test_user_defined_exception():
"""User-defined Exceptions"""
# Programs may name their own exceptions by creating a new exception class. Exceptions should
# typically be derived from the Exception class, either directly or indirectly.
# Most exceptions are defined with names that end in “Error,” similar to the naming of the
# standard exceptions. Many standard modules define their own exceptions to report errors
# that may occur in functions they define.
class MyCustomError(Exception):
"""Example of MyCustomError exception."""
def __init__(self, message):
super().__init__(message)
self.message = message
custom_exception_is_caught = False
class My1stError(Exception):
"""Try by myself"""
def __init__(self, msg):
super().__init__(msg)
self.message = msg
my1stexception = False
try:
raise My1stError("My 1st error msg")
except My1stError:
my1stexception = True
assert my1stexception == True
try:
raise MyCustomError('My custom message')
except MyCustomError:
custom_exception_is_caught = True
assert custom_exception_is_caught