Hướng dẫn python __exit__ - python __exit__

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc

    Bàn luận

    • Trình quản lý bối cảnh được sử dụng để quản lý tài nguyên được sử dụng bởi chương trình. Sau khi hoàn thành việc sử dụng, chúng tôi phải phát hành bộ nhớ và chấm dứt các kết nối giữa các tệp. Nếu chúng không được phát hành thì nó sẽ dẫn đến rò rỉ tài nguyên và có thể khiến hệ thống chậm lại hoặc sụp đổ. Ngay cả khi chúng tôi không phát hành tài nguyên, các nhà quản lý ngữ cảnh hoàn toàn thực hiện nhiệm vụ này.

    Tham khảo bài viết dưới đây để có ý tưởng về những điều cơ bản của người quản lý bối cảnh.

    Quản lý bối cảnh

    __exit __ () phương thức __exit__(self, exception_type, exception_value, exception_traceback) 

    Parameters:  

    • Đây là một phương pháp của lớp bối cảnh. Phương pháp __exit__ quan tâm đến việc phát hành các tài nguyên bị chiếm giữ với đoạn mã hiện tại. Phương pháp này phải được thực thi bất kể điều gì sau khi chúng ta được thực hiện với các tài nguyên. Phương pháp này chứa các hướng dẫn để đóng đúng trình xử lý tài nguyên để tài nguyên được giải phóng để sử dụng thêm bởi các chương trình khác trong HĐH. Nếu một ngoại lệ được nâng lên; Loại, giá trị và dấu vết của nó được truyền dưới dạng đối số cho __exit __ (). Nếu không, ba không có đối số được cung cấp. Nếu ngoại lệ bị triệt tiêu, thì giá trị trả về từ phương thức __exit __ () sẽ đúng, nếu không, sai.indicates class of exception. 
    • Cú pháp: __exit __ (self, exican_type, offic_value, exican_traceBack) & nbsp; indicates type of exception . like divide_by_zero error, floating_point_error, which are types of arithmetic exception. 
    • Exception_Type: chỉ ra lớp ngoại lệ. & nbsp; traceback is a report which has all of the information needed to solve the exception.

    Exception_Value: Cho biết loại ngoại lệ. Giống như lỗi Divide_by_zero, Floating_Point_error, là loại ngoại lệ số học. & NBSP; 

    Python3

    Exception_TraceBack: Traceback là một báo cáo có tất cả thông tin cần thiết để giải quyết ngoại lệ.

    # Ví dụ 1: & nbsp;

            

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    2
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    3

    class ContextManager():

            

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1class2
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    3

        def __init__(______7

        def

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    6self__

            

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1ContextManager():5
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    3

    ContextManager():7

        

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1    1
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    3

            class5 self

    init method called
    enter method called
    with statement block
    exit method called
    

        def class9selfContextManager():1 Understanding parameters of __exit__(). We will create a context manager that will be used to divide two numbers. If the 

    Python3

    Đầu ra

    # Ví dụ 2: Hiểu các tham số của __exit __ (). Chúng tôi sẽ tạo một trình quản lý bối cảnh sẽ được sử dụng để chia hai số. Nếu & nbsp;

    class     4

        def __init__(self    9

    class ContextManager():

            

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1__init__(8
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    3

        def __init__(______7

        def

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    6self__

            

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1):1
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    3

            

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1):6):7

            

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1        1        2

            class5 self

        def class9selfContextManager():1

    Đầu ra

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    11
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    12
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    13
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    14
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    15

        

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    17

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    0
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    1
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    20
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    3

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    11
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    12
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    13
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    25
    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    15

        

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero
    17

    Output: 

    Inside __enter__
    3.0
    
    Inside __exit__
    
    Execution type: None
    
    Execution value: None
    
    Traceback: None
    ................................................
    Inside __enter__
    
    Inside __exit__
    
    Execution type: 
    
    Execution value: division by zero
    
    Traceback: 
    Traceback (most recent call last):
      File "gfg.py", line 32, in 
        r.divide_by_zero()
      File "gfg.py", line 21, in divide_by_zero
        print(self.num1 / self.num2)
    ZeroDivisionError: division by zero