DANH MỤC TÀI LIỆU
Error và Exception trong Python
Error và Exception trong Python
Python th ng sinh ra các ngo i l (exception) khi có l i x y ra trong quá ườ ạ ệ
trình th c thi. Quantrimang s cùng b n tìm hi u v các ngo i l khác nhau ạ ệ
đ c xây d ng trong ngôn ng này. M i b n đ c theo dõi.ượ ờ ạ
L i (Error)
Khi vi t m t ch ng trình, vi c g p l i th ng xuyên là đi u không th ế ươ ặ ỗ ườ
tránh kh i.
Có m t s l i do không tuân theo c u trúc đúng c a cú pháp gây nên các l i ố ỗ
l i cú pháp (syntax error ho c parsing error).
>>> if a < 3
File "<interactive input>", line 1
if a < 3
^
SyntaxError: invalid syntax
L nh đ c vi t trên b thi u d u hai ch m trong câu l nh IF l p t c ượ ế ế ậ ứ
ch ng trình báo l i cú phápươ invalid syntax.
Ngo i l (Exception)ạ ệ
Ngoài ra, có tr ng h p Python phát sinh l i khi đang th c thi ch ng trìnhườ ợ ươ
(runtime error). Nh ng l i này đ c g i là ngo i l (Exception). ượ ạ ệ
Ngo i l đ c Python t o ra đ x lý v n đ đó tránh cho ch ng trình b ệ ượ ể ử ươ
h ng.
M t s ví d v Exception nh : ụ ề ư
M m t t p không t n t i (FileNotFoundError)
Chia m t s cho 0ộ ố (ZeroDivisionError)
Không tìm th y module đ c import ượ (ImportError).
Truy n giá tr vào m t function v i đúng ki u d li u nh ng giá tr ữ ệ ư
không thích h p (ValueError).
B t c khi nào cóấ ứ runtime error x y ra, Python s t o m t đ i t ng ngo i ẽ ạ ượ
l .
N u không đ c x lý đúng cách, ch ng trình s in ra l i và chi ti t v ế ượ ươ ế ề
do có l i x y ra.ỗ ả
>>> 1 / 0
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero
>>> open("imaginary.txt")
Traceback (most recent call last):
File "<string>", line 301, in runcode
File "<interactive input>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: 'imaginary.txt'
Ngo i l đ c Python t o raạ ệ ượ
Có r t nhi u ngo i l đ c Python t o ra khi g p các l i t ng ng. ệ ượ ươ
B n có th xem t t c các tr ng h p Exception có s n b ng cách s d ng ườ ử ụ
hàm local() nh sau:ư
locals()['__builtins__']
Hàm này s tr v m t danh sách các ngo i l , ch c năng và thu c tính ả ề
đ c Python tích h p s n.ượ ợ ẵ
Quantrimang xin giới thiệu một số ngoại lệ được xây dựng sẵn trong Python cùng với lỗi gây ra nó trong
bảng dưới đây:
Ngo i lạ ệ Lý do gây ra
AssertionError X y ra khi câu l nh assert th t b i.ấ ạ
AttributeError X y ra khi gán thu c tính ho c tham chi u th t b i. ế ấ ạ
EOFError X y ra khi hàm input () ch m vào đi u ki n end-of- ề ệ
file.
FloatingPointError X y ra khi m t s th c d y ph y đ ng th c thi ộ ố
không thành công
GeneratorExit X y ra khi ph ng th c close() c a hàmươ ứ generator
đ c g i.ượ
ImportError X y ra khi không tìm th y module đ c import. ấ ượ
IndexError X y ra khi m t ch s trong chu i (sequence) n m ỉ ố
ngoài ph m vi.
KeyError X y ra khi không tìm th y khóa ánh x (t đi n) ạ ừ
trong t p h p các khóa hi n có.ậ ợ
KeyboardInterrupt X y ra khi ng i dùng nh n phím ng t (thông th ngườ ấ ườ
là Ctrl-C ho c Delete).
MemoryError
X y ra khi m t operation h t b nh nh ng tình ế ộ ư
hu ng v n có th đ c s a ch a (b ng cách xóa m t ể ượ
s đ i t ng).ố ố ượ
NameError X y ra khi không tìm th y tên c c b ho c toàn c u ụ ộ
c a bi n. ế
NotImplementedError X y ra b ng các ph ng th c tr u t ng ươ ừ ượ khi chúng
yêu c u các l p d n xu t ghi đè ph ng th c. ươ
OSError X y ra khi m t hàm tr v l i liên quan đ n h th ng ề ỗ ế
OverflowError X y ra khi k t qu c a phép toán s h c quá l n ế ả ủ
không th bi u di n.
ReferenceError
X y ra khi m t proxy tham chi u y u s d ng đ ế ế ử ụ
truy c p m t thu c tính c a tham chi u sau khi thu ậ ộ ế
th p rác.
RuntimeError X y ra khi phát hi n th y l i không thu c b t kỳ ấ ỗ
danh m c nào khác.
StopIteration
X y ra b ng ph ng th c next() c a m t vòng l p đ ươ ặ ể
báo hi u r ng không có giá tr nào đ c tr v b i ượ ả ề ở
iterator.
SyntaxError X y ra khi g p l i cú pháp. ặ ỗ
IndentationError X y ra khi có l i th t l không chính xác. ụ ề
TabError X y ra khi th t l s d ng các tab và d u cách không ề ử
nh t quán.
SystemError X y ra khi trình thông d ch tìm th y các l i n i b ỗ ộ ộ
nh ng tình hình không quá nghiêm tr ng.ư ọ
SystemExit X y ra b i hàm sys.exit().
TypeError X y ra khi m t hàm ho c phép th c thi (operation) áp ộ ặ
d ng ki u không chính xác cho m t đ i t ng. ố ượ
UnboundLocalError X y ra khi tham chi u t o thành m t bi n c c b ế ạ ế
trong m t hàm ho c ph ng th c, nh ng không có ặ ươ ư
giá tr nào b ràng bu c v i bi n đó. ộ ớ ế
UnicodeError X y ra khi có l i liên quan đ n Unicode ế
UnicodeEncodeError X y ra khi l i liên quan đ n Unicode di n ra trong ả ỗ ế
quá trình mã hóa.
UnicodeDecodeError X y ra khi l i liên quan đ n Unicode di n ra trong ỗ ế
quá trình gi i mã.
UnicodeTranslateError X y ra khi l i liên quan đ n Unicode trong quá trình ỗ ế
d ch.
ValueError X y ra khi m t phép toán ho c hàm nh n đ c m t ậ ượ
đ i s có ki u đúng nh ng giá tr không phù h p ư
ZeroDivisionError X y ra khi đ i s th hai c a phép chia ho c phép ố ố
toán modulo b ng 0.
Đ x lý nh ng ngo i l này, b n có thể ử s d ng các câu l nh try, except ử ụ
và finally.
Ngoài ra, b n cũng có th t đ nh nghĩa ngo i l c a mình trong Python ể ự
n u c n thi t.ế ầ ế
Hai v n đ này s đ c Quantrimang h ng d n trong các bài vi t ti p ẽ ượ ướ ế ế
theo. Các b n cùng theo dõi nhé.
thông tin tài liệu
Python thường sinh ra các ngoại lệ (exception) khi có lỗi xảy ra trong quá trình thực thi.
Mở rộng để xem thêm
từ khóa liên quan
xem nhiều trong tuần
yêu cầu tài liệu
Giúp bạn tìm tài liệu chưa có

LÝ THUYẾT TOÁN


×