Error và Exception trong Python

Errors và Exceptions




Trong phần này chúng ta chỉ nói đến Syntax error và Exception Error.

Trong lập trình chúng ta hay gặp phải syntax error là nhiều nhất. 

Syntax error là những lỗi cú pháp mà trong quá trình học tập hay gặp phải. 

Ví dụ: 

 

SyntaxError: invalid syntax

nếu cú pháp đúng sẽ là: >>>while True: print("Hello Thanh DevOps")

Exception : 

Exception xuất hiện khi một tthực thi một python script nào đó. 
Trong phần tới chúng ta sẽ bàn thêm về handle exception trong python như thế nào nhé.

>>> 10 * (1/0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero

ZeroDivisionError: lỗi thi thực thi 1 phép tính chia cho 0 

>>> 4 + spam*3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'spam' is not defined

NameError: biến spam chưa đươc định nghĩa phía trên 

>>> '2' + 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly

TypeError
String '2' không thể thực thi như một interger. 


Finally trong cú pháp : try & except & else: and finally.

try

except [(Exception[, Exception])] [as VAR]:

else: 

finally:
 - Luôn luôn thực thi sau những block khác thậm chí khi lỗi  trả về là uncaugh exception. 

Ví dụ về finally: 

def foo10()
   try:
       1 + 0
   except:
         print(‘caught exception’)
   else:
       print(‘no exception raised’)
   finally:
         print(‘finally’)

Output sẽ là: 

>>>foo10()
no exception raised
finally
>>> 

Thậm chí : 

def foo11()
   try:
       1 + 0
   except:
       return 0
   else:
       return 1
   finally:
         print(‘finally’)


Output sẽ là : 

>>>foo11() + 1
finally
2
>>> 

Raising một exception:


Chúng ta có thể raise thông qua 1 exception nếu điều kiện xảy ra. 


Ví dụ : 

x = 10
if x > 5:
    raise Exception('x should not exceed 5. The value of x was: {}'.format(x))


Khi thực thi code trên : 

Traceback (most recent call last):
  File "<input>", line 4, in <module>
Exception: x should not exceed 5. The value of x was: 10


Đoạn code trên se thực thi khi giá trị x > 10 và output ra screen như trên. 

AssertionError Exception


Khi một điều kiện met thì by pass qua điều kiện đó, nếu không thì phát sinh exception, chúng ta có thể làm điều đó bằng assert 


Ta có đoạn code ví dụ đây : 

import sys
assert ('linux' in sys.platform), "This code runs on Linux only."

Nếu bạn chạy mã code trên máy linu thì pass nhưng khi chạy trên máy windows thì assert trả về False. 

Nên output sẽ xuất hiện lỗi: 


Traceback (most recent call last):
  File "<input>", line 2, in <module>
AssertionError: This code runs on Linux only.


Try & Exception block 



try:
    linux_interaction()
except:
    print('Linux function was not executed')


linux_interaction() Chỉ chạy trên Linux system

Nếu ta chạy đoạn mã code trên máy Windows thì sinh ra exception :

Linux function was not executed





Nhận xét

Bài đăng phổ biến từ blog này

Trang web medium.com chết, vì sao ?

Cách sử dụng sys.argv trong python.

Thiết kế một RESTful API bằng python và flask.