Chuyển đến nội dung chính

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

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

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

sys.argv là môt danh sách [list] trong python, nó được sư dụng khi bạn chạy một lệnh command-line nào đó trên hệ thống.
Và argument này được đẩy vào script python để thực thi khi chạy câu lệnh.

Ví dụ: python sys.argv arg1 arg2

Trước tiên bạn phải import mô đun sys trong script.



import sys print"This is the name of the script: ", sys.argv[0]print"Number of arguments: ", len(sys.argv)print"The arguments are: ", str(sys.argv)

Tên của script này : sysargv.py
Số lượng arg là : 1
Arg là : ['sysargv.py']


python test1020.py 111 This is the name of the script:  test1020.py
Number of arguments:  2
The arguments are:  ['test1020.py', '111']

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

Như các bạn đã biết thì REST viết tắt bởi REpresentational State Transfer. Bạn có thể tham khảo thêm ở đây.

Vậy REST là gì:

Có 6 yếu tố của REST như sau:

1. Client-Server: phía server side phục vụ như một service còn phía client sẽ dùng service này.

2.Stateless:  Mỗi request từ client phải chứa tất cả các thông tin mà phía server yêu cầu phải có. Nói nôm na là mỗi request chứa các thông tin riêng rẽ không liên quan đến những request khác.

3. Cacheable : Phía server side phải cảnh báo chỉ ra cho client side biết là request đó có cache hay không.

4. Hệ thống phân lớp: Giao tiếp giữa server side và client side có thể thông qua lớp trung gian ở giữa để trả lời các request được gọi mà không cân phía client phải làm những động tác khác nữa.

5. Các cổng giao tiếp là giống nhau : Các phương thức giao tiếp giữa client và server là khuôn mẫu giống nhau.

6. Mã code linh động. Phía server có thể thực thi cho môt API gọi duy nhất mà không ảnh hưởng tới các API khác.

RESTful web service là gì :

Kiế…

Cài đặt docker trên windows server 2016.

1. Cài đặt Windows Server 2016 Container Feature:  Mở PowerShell : Cài đặt các container feature dùng powershell: Dùng lệnh: InstallWindowsFeature containers Restart lại windows: 2. Cài đặt windows server 2016 base image:  Cài đặt mô đun : ContainerImage Dùng lệnh: Install-PackageProvider ContainerImage -force List các image có giá trị: Cài đặt Windows Server Core : 3. Cài đặt docker trên windows server 2016. Download script để cài đặt docker : Chạy script : Kiểm tra các image có trên server :