Hướng dẫn python exit program with error - python thoát chương trình với lỗi

Lập trình có nghĩa là đưa ra hướng dẫn cho máy tính về cách thực hiện một nhiệm vụ. Các hướng dẫn này được viết bằng ngôn ngữ lập trình. Một chuỗi có tổ chức của các hướng dẫn như vậy được gọi là một tập lệnh.

Là một lập trình viên, công việc chính của bạn là viết các tập lệnh (tức là các chương trình). Tuy nhiên, bạn cũng cần biết làm thế nào các tập lệnh có thể kết thúc. Trong bài viết này, chúng tôi sẽ đi qua những cách khác nhau mà một kịch bản Python có thể kết thúc. Không có kiến ​​thức điều kiện tiên quyết cho bài viết này, nhưng sẽ tốt hơn nếu bạn quen thuộc với các thuật ngữ Python cơ bản.

Nếu bạn chưa quen với lập trình hoặc có kế hoạch bắt đầu học nó, Python là cách tốt nhất để bắt đầu cuộc phiêu lưu lập trình của bạn. Nó là một ngôn ngữ dễ dàng và trực quan, và mã dễ hiểu như tiếng Anh đơn giản.

Các tập lệnh được viết để thực hiện một nhiệm vụ; Họ được cho là kết thúc sau khi hoàn thành nhiệm vụ. Nếu một kịch bản không bao giờ kết thúc, chúng ta có một vấn đề nghiêm trọng. Chẳng hạn, nếu có vô hạn trong khi vòng lặp trong tập lệnh, về mặt lý thuyết, mã không bao giờ kết thúc và có thể yêu cầu gián đoạn bên ngoài.

Điều quan trọng cần lưu ý là một vòng vô hạn trong khi vòng lặp có thể được tạo có mục đích. Một tập lệnh có thể được viết để tạo một dịch vụ được cho là chạy mãi mãi. Trong trường hợp này, vòng lặp vô hạn là cố ý và không có vấn đề gì với điều đó.

Kết thúc của một kịch bản Python có thể gây khó chịu hoặc thỏa mãn, tùy thuộc vào kết quả. Nếu kịch bản làm những gì nó được cho là phải làm, thì nó thật tuyệt vời. Mặt khác, nếu nó kết thúc bằng cách nêu ra một ngoại lệ hoặc ném lỗi, thì chúng ta sẽ không hạnh phúc lắm.

5 cách để kết thúc kịch bản Python

Hãy bắt đầu với trường hợp phổ biến và rõ ràng nhất: một tập lệnh kết thúc khi không còn dòng nào để thực hiện.

1. Tất cả các dòng được thực thi

Sau đây là một tập lệnh đơn giản in các tên trong danh sách, cùng với số lượng ký tự chúng chứa:

mylist = ["Jane", "John", "Ashley", "Matt"]

for name in mylist:
    print(name, len(name))

Output:

Jane 4
John 4
Ashley 6
Matt 4

Kịch bản làm công việc của nó và kết thúc. Tất cả chúng ta đều hạnh phúc.

Các tập lệnh Python hoặc tập lệnh trong bất kỳ ngôn ngữ lập trình nào khác, có thể thực hiện một loạt các hoạt động. Trong nhiều trường hợp, chúng tôi không thể kiểm tra trực quan kết quả. Chẳng hạn, công việc của tập lệnh có thể là đọc dữ liệu từ cơ sở dữ liệu, thực hiện một tập hợp các phép biến đổi và viết dữ liệu được chuyển đổi sang cơ sở dữ liệu khác.

Trong các tập lệnh thực hiện một loạt các hoạt động, nó là một thực tiễn tốt để giữ một tệp nhật ký hoặc thêm các câu lệnh in sau mỗi nhiệm vụ riêng lẻ. Nó cho phép chúng tôi gỡ lỗi đơn giản trong trường hợp có vấn đề. Chúng tôi cũng có thể kiểm tra tệp nhật ký hoặc đọc đầu ra của các câu lệnh in để đảm bảo hoạt động đã được hoàn thành thành công.

2. Ngoại lệ chưa học

Nó thường mất một số lần lặp để viết một tập lệnh chạy mà không có lỗi; Nó rất hiếm khi có được nó ngay lần đầu tiên. Do đó, một cách phổ biến mà một kịch bản kết thúc là một ngoại lệ chưa được thực hiện; Điều này có nghĩa là có một lỗi trong tập lệnh.

Khi viết tập lệnh, chúng ta có thể nghĩ ra một số vấn đề có thể xảy ra và đặt các khối ngoại trừ thử trong tập lệnh để xử lý chúng. Đây là những ngoại lệ mà chúng tôi có thể bắt được. Những cái khác có thể được coi là ngoại lệ chưa được thực hiện.

Xem xét mã sau:

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")

Output:

The length of Jane is 4
The length of John is 4
Traceback (most recent call last):
  File "", line 4, in 
TypeError: object of type 'int' has no len()

Mã in chiều dài của mỗi mục trong danh sách. Nó thực thi mà không có vấn đề cho đến khi mục thứ ba, đó là một số nguyên. Vì chúng ta không thể áp dụng chức năng LEN cho số nguyên, nên tập lệnh ném lỗi và kết thúc.

Chúng ta có thể làm cho tập lệnh tiếp tục bằng cách thêm một khối Except thử.

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
    try:
        print(f"The length of {i} is {len(i)}")
    except TypeError:
        print(f"{i} does not have a length!")

Output:

The length of Jane is 4
The length of John is 4
2 does not have a length!
The length of Max is 3

Khối ngoại trừ thử này làm gì?

  • Nó in chuỗi F bao gồm các giá trị và độ dài của chúng.
  • Nếu việc thực thi trong khối thử trả về một kiểu mẫu, nó sẽ bị bắt trong khối ngoại trừ.
  • Kịch bản tiếp tục thực thi.

Tập lệnh vẫn kết thúc, nhưng không có lỗi. Trường hợp này là một ví dụ về những gì chúng tôi đã giải thích trong phần đầu tiên.

3. sys.exit ()

Mô -đun

Jane 4
John 4
Ashley 6
Matt 4
8 là một phần của thư viện tiêu chuẩn Python. Nó cung cấp các tham số và chức năng dành riêng cho hệ thống.

Một trong những chức năng trong mô -đun

Jane 4
John 4
Ashley 6
Matt 4
8 là
mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
0, chỉ đơn giản là thoát Python. Mặc dù hành vi thoát là giống nhau, đầu ra có thể hơi khác nhau tùy thuộc vào môi trường. Chẳng hạn, khối mã sau được thực thi trong Pycharm IDE:

import sys
number = 29

if number < 30:
    sys.exit()
else:
    print(number)

Nó cung cấp đầu ra này:

Process finished with exit code 0

Bây giờ, hãy để Lừa chạy cùng một mã trong Notebook Jupyter:

import sys
number = 29

if number < 30:
    sys.exit()
else:
    print(number)

Ở đây, đầu ra:

An exception has occurred, use %tb to see the full traceback.

SystemExit

Hàm

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
1 chấp nhận một đối số tùy chọn có thể được sử dụng để xuất thông báo lỗi. Giá trị mặc định là 0, cho thấy chấm dứt thành công; Bất kỳ giá trị khác là một chấm dứt bất thường.successful termination; any nonzero value is an abnormal termination.

Chúng ta cũng có thể chuyển một đối tượng không phải là đối tượng là đối số tùy chọn:

Jane 4
John 4
Ashley 6
Matt 4
0

Output:

Jane 4
John 4
Ashley 6
Matt 4
1

Hàm

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
2 làm tăng ngoại lệ
mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
3, do đó, các chức năng dọn dẹp được sử dụng trong mệnh đề cuối cùng của khối Excet-Encept-Phần cuối cùng sẽ hoạt động. Nói cách khác, chúng ta có thể nắm bắt ngoại lệ và xử lý các hoạt động hoặc nhiệm vụ dọn dẹp cần thiết.

4. Thoát () và thoát ()

Các hàm

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
4 và
mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
5 được tích hợp vào Python để chấm dứt tập lệnh. Chúng có thể được sử dụng thay thế cho nhau.

Kịch bản sau đây in các số nguyên trong phạm vi từ 0 đến 10. Nếu giá trị trở thành 3, nó sẽ thoát Python:

Jane 4
John 4
Ashley 6
Matt 4
2

Đầu ra

Jane 4
John 4
Ashley 6
Matt 4
3

Lưu ý: & nbsp; Chức năng

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
4 cũng làm tăng một ngoại lệ, nhưng nó không bị chặn (không giống như
mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
2). Do đó, tốt hơn là sử dụng hàm sys.exit () trong mã sản xuất để chấm dứt các tập lệnh python.
: The 
mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
4 function also raises an exception, but it is not intercepted (unlike
mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
2). Therefore, it is better to use the sys.exit() function in production code to terminate Python scripts.

5. gián đoạn bên ngoài

Một cách khác để chấm dứt tập lệnh Python là làm gián đoạn nó bằng cách sử dụng bàn phím theo cách thủ công. Ctrl + C trên Windows có thể được sử dụng để chấm dứt các tập lệnh Python và Ctrl + Z trên UNIX sẽ đình chỉ (đóng băng) việc thực thi các tập lệnh Python.

Nếu bạn nhấn Ctrl + C trong khi tập lệnh đang chạy trong bảng điều khiển, tập lệnh sẽ kết thúc và tăng ngoại lệ.

Jane 4
John 4
Ashley 6
Matt 4
4

Chúng ta có thể triển khai một khối Excet thử trong tập lệnh để thực hiện thoát hệ thống trong trường hợp ngoại lệ

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
8. Hãy xem xét tập lệnh sau đây in các số nguyên trong phạm vi đã cho.

Jane 4
John 4
Ashley 6
Matt 4
5

Chúng tôi có thể muốn thoát Python nếu tập lệnh bị chấm dứt bằng cách sử dụng Ctrl + C trong khi chạy. Khối mã sau đây bắt được ngoại lệ

mylist = ["Jane", "John", 2, "Max"]

for i in mylist:
   print(f"The length of {i} is {len(i)}")
8 và thực hiện thoát hệ thống.

Jane 4
John 4
Ashley 6
Matt 4
6

Output:

Jane 4
John 4
Ashley 6
Matt 4
7

Chúng tôi đã đề cập đến 5 cách khác nhau mà một kịch bản Python có thể kết thúc. Tất cả đều khá đơn giản và dễ thực hiện.

Python là một trong những ngôn ngữ lập trình ưa thích nhất. Bắt đầu hành trình Python của bạn với chương trình học thân thiện với người mới bắt đầu của chúng tôi với bản nhạc Python. Nó bao gồm 5 khóa học Python tương tác tăng dần độ phức tạp. Thêm vào đó, nó có tất cả các tương tác; Bảng điều khiển trực tuyến của chúng tôi cho phép bạn kiểm tra ngay lập tức mọi thứ bạn học. Đó là một cách tuyệt vời để thực hành và nó làm cho việc học trở nên thú vị hơn.

Hơn thế nữa, bạn không cần phải cài đặt hoặc thiết lập bất cứ thứ gì trên máy tính của mình. Bạn chỉ cần sẵn sàng học hỏi; Chúng tôi sẽ chăm sóc phần còn lại. Chờ không còn nữa - Bắt đầu học Python ngay hôm nay!

Thoát () làm gì trong Python?

Bất cứ khi nào chúng tôi chạy một chương trình trong Python, mô -đun trang web sẽ tự động được tải vào bộ nhớ.Mô -đun trang web này chứa hàm thoát () ,, có thể được sử dụng để thoát khỏi chương trình trong một thông dịch viên.Hàm bỏ () làm tăng ngoại lệ hệ thống khi được thực thi;Vì vậy, quá trình này thoát khỏi chương trình của chúng tôi.

Làm thế nào để bạn tăng một ngoại lệ và thoát trong Python?

Các hàm thoát (), thoát (), sys.Thoát () và HĐH._exit () có chức năng gần như giống như chúng tăng ngoại lệ hệ thống mà theo đó trình thông dịch Python thoát ra và không có dấu vết ngăn xếp nào được in.