-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path207 exception challenge.py
46 lines (40 loc) · 1.33 KB
/
207 exception challenge.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
# def check(arg1, arg2):
# try:
# arg1 = int(arg1)
# arg2 = int(arg2)
# x = arg1 / arg2
# print(x)
# except (TypeError, ZeroDivisionError, ValueError):
# print("Jakiś błąd")
#
#
# a = input("Podaj pierwszą liczbę: ")
# b = input("Podaj pierwszą liczbę: ")
# check(a, b)
import sys
def calc(arg1, arg2):
try:
result = arg1 / arg2
print(result)
except (ValueError, ZeroDivisionError, TypeError):
print("Wystąpił błąd obliczeń, kończę program...") # pokaże się jak błąd będzie jednym z trzech wybranych
except EOFError:
sys.exit(1)
else:
print("Zadziałała funkcja dzielenia") # pokaże się tylko gdy try zadziała
def get_number(message):
while True:
try:
number = int(input(message))
return number
except ValueError:
print("Podano niewłaściwą liczbę, spróbuj ponownie: ")
except EOFError:
sys.exit(2)
except:
print("Błąd") # ogólne błędy, bez określania który, czyli wszystkie
finally: # dobre na zamknięcie bazy danych albo pliku, wykona się zanim program się zakończy
print("Zawsze się włącza")
a = get_number("Podaj pierwszą liczbę: ")
b = get_number("Podaj drugą liczbę: ")
calc(a, b)