Python xử lý ngoại lệ lỗi giá trị như thế nào?

Một ngoại lệ là một lỗi xảy ra trong quá trình thực hiện chương trình. Các ngoại lệ được biết đến với những người không phải là lập trình viên như các trường hợp không tuân theo quy tắc chung. Cái tên "ngoại lệ" trong khoa học máy tính cũng có ý nghĩa này. Nó ngụ ý rằng vấn đề [ngoại lệ] không xảy ra thường xuyên, tôi. e. ngoại lệ là "ngoại lệ đối với quy tắc". Xử lý ngoại lệ là một cấu trúc trong một số ngôn ngữ lập trình để tự động xử lý hoặc xử lý lỗi. Nhiều ngôn ngữ lập trình như C++, Objective-C, PHP, Java, Ruby, Python và nhiều ngôn ngữ khác có hỗ trợ tích hợp để xử lý ngoại lệ

Xử lý lỗi thường được giải quyết bằng cách lưu trạng thái thực thi tại thời điểm xảy ra lỗi và làm gián đoạn luồng bình thường của chương trình để thực thi một chức năng hoặc đoạn mã đặc biệt, được gọi là trình xử lý ngoại lệ. Tùy thuộc vào loại lỗi ["chia cho 0", "lỗi mở tệp", v.v.] đã xảy ra, trình xử lý lỗi có thể "khắc phục" sự cố và chương trình có thể được tiếp tục sau đó với dữ liệu đã lưu trước đó

Đào tạo Python trực tiếp

Thưởng thức trang này?

Nhìn thấy. Tổng quan về các khóa học Python trực tiếp

đăng ký tại đây

Xử lý ngoại lệ trong Python

Xử lý ngoại lệ trong Python rất giống với Java. Đoạn mã có nguy cơ xảy ra ngoại lệ, được nhúng trong khối thử. Trong khi trong Java, các ngoại lệ được bắt bởi các mệnh đề bắt, trong Python, chúng tôi có các câu lệnh được giới thiệu bởi một từ khóa "ngoại trừ". Có thể tạo ngoại lệ "tùy chỉnh". Với câu lệnh nâng cao, có thể buộc một ngoại lệ được chỉ định xảy ra

Hãy xem một ví dụ đơn giản. Giả sử chúng ta muốn yêu cầu người dùng nhập một số nguyên. Nếu chúng ta sử dụng một input[], đầu vào sẽ là một chuỗi, mà chúng ta phải truyền thành một số nguyên. Nếu đầu vào không phải là một số nguyên hợp lệ, chúng tôi sẽ tạo [tăng] một ValueError. Chúng tôi hiển thị điều này trong phiên tương tác sau đây

n = int[input["Please enter a number: "]]

Với sự trợ giúp của xử lý ngoại lệ, chúng ta có thể viết mã mạnh mẽ để đọc một số nguyên từ đầu vào

while True:
    try:
        n = input["Please enter an integer: "]
        n = int[n]
        break
    except ValueError:
        print["No valid integer! Please try again ..."]
print["Great, you successfully entered an integer!"]

Đó là một vòng lặp, chỉ ngắt nếu một số nguyên hợp lệ đã được cung cấp. Vòng lặp while được nhập. Mã trong mệnh đề try sẽ được thực thi theo từng câu lệnh. Nếu không có ngoại lệ nào xảy ra trong quá trình thực thi, thì quá trình thực thi sẽ đến câu lệnh break và vòng lặp while sẽ bị bỏ lại. Nếu một ngoại lệ xảy ra, tôi. e. trong quá trình truyền n, phần còn lại của khối thử sẽ bị bỏ qua và mệnh đề ngoại trừ sẽ được thực thi. Lỗi nêu ra, trong trường hợp của chúng tôi là ValueError, phải khớp với một trong các tên sau except. Trong ví dụ của chúng tôi chỉ có một, tôi. e. "Lỗi giá trị. ". Sau khi in văn bản của câu lệnh in, quá trình thực thi thực hiện một vòng lặp khác. Nó bắt đầu với một đầu vào mới[]

Chúng ta có thể biến đoạn mã trên thành một hàm, có thể được sử dụng để có đầu vào rõ ràng

def int_input[prompt]:
    while True:
        try:
            age = int[input[prompt]]
            return age
        except ValueError as e:
            print["Not a proper integer! Try it again"]

Chúng tôi sử dụng điều này với ví dụ về tuổi chó của chúng tôi từ chương Câu lệnh có điều kiện

def dog2human_age[dog_age]:
    human_age = -1
    if dog_age 

Chủ Đề