-
Notifications
You must be signed in to change notification settings - Fork 0
/
circuit_exceptions.py
162 lines (121 loc) · 3.5 KB
/
circuit_exceptions.py
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#! /usr/bin/env python
import sys
import math
class AdjacentJumpError(Exception):
"""
This error is raised when two jump labels
are found adjacent to each other.
"""
def __init__(self):
print("Circuit Error: Jump labels in adjacent cells.")
print("*"*40)
print()
sys.exit(1)
class JumpNotExtremeError(Exception):
"""
This error is raised when a jump label
is not the extreme element on the branch.
"""
def __init__(self):
print("Circuit Error: Jump has to be the extreme connector on a branch segment.")
print("*"*40)
print()
sys.exit(1)
class SingleJumpError(Exception):
"""
This error is raised when a jump label
does not have a corresponding jump.
"""
def __init__(self):
print("Circuit Error: Jump does not have a corresponding jump label.")
print("*"*40)
print()
sys.exit(1)
class MultipleJumpError(Exception):
"""
This error is raised when a more than
two jumps having the same label exist.
"""
def __init__(self):
print("Circuit Error: More than two jumps for the jump label.")
print("*"*40)
print()
sys.exit(1)
class JumpAdjacentNodeError(Exception):
"""
This error is raised when a jump label
is adjacent to a node.
"""
def __init__(self):
print("Circuit Error: Jump label is adjacent to a node.")
print("*"*40)
print()
sys.exit(1)
class BrokenBranchError(Exception):
"""
This error is raised when a branch is broken.
"""
def __init__(self):
print("Circuit Error: Branch is broken. Must close all branches.")
print("*"*40)
print()
sys.exit(1)
class PolarityError(Exception):
"""
This error is raised when there is an error in the polarity of an element.
"""
def __init__(self):
print("Circuit Error: Error in polarity")
print("*"*40)
print()
sys.exit(1)
class MissingComponentTagError(Exception):
"""
This error is raised when a component does not
have a label or name.
"""
def __init__(self):
print("Circuit Error: Missing component tags")
print("*"*40)
print()
sys.exit(1)
class UnidentifiedComponentError(Exception):
"""
This error is raised when a component does not
exist in the library.
"""
def __init__(self):
print("Circuit Error: Component does not exist")
print("*"*40)
print()
sys.exit(1)
class DuplicateComponentLabelError(Exception):
"""
This error is raised when two or more components
have the same label or name.
"""
def __init__(self):
print("Circuit Error: Duplicate component labels")
print("*"*40)
print()
sys.exit(1)
class BranchZeroResistanceError(Exception):
"""
This error is raised when the resistance of a branch
with elements becomes zero.
"""
def __init__(self):
print("Circuit Error: Branch has zero resistance.")
print("*"*40)
print()
sys.exit(1)
class MultipleControlVariableError(Exception):
"""
This error is raised when there are the same control variables
with the same name defined in multiple files.
"""
def __init__(self):
print("Control Error: Control variable repeated. A control variable can occur only once among all the control files.")
print("*"*40)
print()
sys.exit(1)