Manejo de excepciones en Python 4-2

Como se menciona en "Manejo de excepciones en Python 4-1" , todas las excepciones se pueden detectar con excepción. De hecho, hay muchas razones para las excepciones durante la ejecución del programa, como el subíndice está fuera de rango, el divisor es 0, la variable no está definida, etc.

1 declaración de excepción más tipo de excepción específica

Puede agregar un tipo de excepción específico después de la declaración excepto para indicar que la declaración solo detecta la excepción especificada. El código es el siguiente.

a, b = input('请输入被除数和除数:').split()
try:
    print(int(a)/int(b))
except ZeroDivisionError:
    print('除数不能为0。')

Entre ellos, la declaración excepto solo captura la excepción ZeroDivisionError. Cuando el divisor es 0, Python arrojará esta excepción. La entrada y salida del programa que maneja la excepción ZeroDivisionError se muestran en la Figura 1.

Figura 1 Manejo de la excepción ZeroDivisionError

Como se puede ver en la Figura 1, el valor ingresado después de ejecutar el programa es "1 0", es decir, el valor de a es "1" y el valor de b es "0".

El valor de int (b) es 0 y Python generará una excepción ZeroDivisionError. Esta excepción es manejada por el código que escribimos y muestra "el divisor no puede ser 0".

Cuando la entrada es "1 a", el valor de b es "a", en este momento int (b) no puede convertirlo a un tipo entero y se generará una excepción ValueError. Sin embargo, dado que nuestro código no detecta la excepción ValueError, Python manejará la excepción y se mostrará un mensaje de error rojo. El código se muestra en la Figura 2.

Figura 2 Manejo de excepciones ValueError

2 Manejar múltiples excepciones al mismo tiempo

Para la situación en la que pueden ocurrir múltiples excepciones en un fragmento de código mencionado en "1 declaración de excepción más un tipo de excepción específico", podemos usar múltiples excepciones para detectarlas. El código es el siguiente.

a, b = input('请输入被除数和除数:').split()
try:
    print(int(a)/int(b))
except ZeroDivisionError:
    print('除数不能为0。')
except ValueError:
    print('输入的不是数字。')

Cuando se ingresa "1 a", debido a que el código captura la excepción ValueError, se mostrará "La entrada no es un número", como se muestra en la Figura 3.

Figura 3 Captura de múltiples excepciones

Supongo que te gusta

Origin blog.csdn.net/hou09tian/article/details/132775308
Recomendado
Clasificación