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

Exception trong python.


Python cung cấp 2 tính năng rất quan trọng để handle những lỗi không mong muốn và thêm khả năng debug trong ứng dụng python của bạn.

1. Exception handling.
2. Assertions.

Trong phần này ta chỉ chú trọng bào Exception handling.

Danh sách các Exception tiêu chuẩn:

EXCEPTION NAMEDESCRIPTION
ExceptionBase class for all exceptions
StopIterationRaised when the next() method of an iterator does not point to any object.
SystemExitRaised by the sys.exit() function.
StandardErrorBase class for all built-in exceptions except StopIteration and SystemExit.
ArithmeticErrorBase class for all errors that occur for numeric calculation.
OverflowErrorRaised when a calculation exceeds maximum limit for a numeric type.
FloatingPointErrorRaised when a floating point calculation fails.
ZeroDivisonErrorRaised when division or modulo by zero takes place for all numeric types.
AssertionErrorRaised in case of failure of the Assert statement.
AttributeErrorRaised in case of failure of attribute reference or assignment.
EOFErrorRaised when there is no input from either the raw_input() or input() function and the end of file is reached.
ImportErrorRaised when an import statement fails.
KeyboardInterruptRaised when the user interrupts program execution, usually by pressing Ctrl+c.
LookupErrorBase class for all lookup errors.
IndexError
KeyError
Raised when an index is not found in a sequence.
Raised when the specified key is not found in the dictionary.
NameErrorRaised when an identifier is not found in the local or global namespace.
UnboundLocalError
EnvironmentError
Raised when trying to access a local variable in a function or method but no value has been assigned to it.
Base class for all exceptions that occur outside the Python environment.
IOError
IOError
Raised when an input/ output operation fails, such as the print statement or the open() function when trying to open a file that does not exist.
Raised for operating system-related errors.
SyntaxError
IndentationError
Raised when there is an error in Python syntax.
Raised when indentation is not specified properly.
SystemErrorRaised when the interpreter finds an internal problem, but when this error is encountered the Python interpreter does not exit.
SystemExitRaised when Python interpreter is quit by using the sys.exit() function. If not handled in the code, causes the interpreter to exit.
Raised when Python interpreter is quit by using the sys.exit() function. If not handled in the code, causes the interpreter to exit.Raised when an operation or function is attempted that is invalid for the specified data type.
ValueErrorRaised when the built-in function for a data type has the valid type of arguments, but the arguments have invalid values specified.
RuntimeErrorRaised when a generated error does not fall into any category.
NotImplementedErrorRaised when an abstract method that needs to be implemented in an inherited class is not actually implemented.


Syntax của handling một exception.

try:
   You do your operations here;
   ......................
except ExceptionI:
   If there is ExceptionI, then execute this block.
except ExceptionII:
   If there is ExceptionII, then execute this block.
   ......................
else:
   If there is no exception then execute this block. 
Ta đi ngay vào ví dụ cho dễ;

#!/usr/bin/python

try:
   fh = open("testfile", "w")
   fh.write("This is my test file for exception handling!!")
except IOError:
   print "Error: can\'t find file or read data"
else:
   print "Written content in the file successfully"
   fh.close()
Nếu có file testfile và có quyền ghi thì output khi chạy đoạn code trên là:

Written content in the file successfully

Ta có thể có mệnh đề except không hoặc có nhiều exception như dưới:

try:
   You do your operations here;
   ......................
except:
   If there is any exception, then execute this block.
   ......................
else:
   If there is no exception then execute this block. 
Nhiều exceptions :

try:
   You do your operations here;
   ......................
except(Exception1[, Exception2[,...ExceptionN]]]):
   If there is any exception from the given exception list, 
   then execute this block.
   ......................
else:
   If there is no exception then execute this block. 

Bạn có thể định nghĩa finally trong mênh đề try như sau:

try:
   You do your operations here;
   ......................
   Due to any exception, this may be skipped.
finally:
   This would always be executed.
   ......................
Ví dụ:
#!/usr/bin/python

try:
   fh = open("testfile", "w")
   fh.write("This is my test file for exception handling!!")
finally:
   print "Error: can\'t find file or read data"
Nếu không có quyền ghi thì lỗi sẽ xuất hiện:

Error: can't find file or read data

Bạn có thể viết lại đoạn code trên rõ ràng hơn :

#!/usr/bin/python

try:
   fh = open("testfile", "w")
   try:
      fh.write("This is my test file for exception handling!!")
   finally:
      print "Going to close the file"
      fh.close()
except IOError:
   print "Error: can\'t find file or read data"




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 :