Python herencia excepción y aplicar ejemplos de código de excepción personalizada

En este artículo se describe la herencia excepción de Python y ejecutar ejemplos de código de excepción personalizada, código de ejemplo de texto describe con gran detalle, tiene un cierto valor de referencia de aprendizaje para todos nosotros para aprender o trabajo, un amigo en necesidad puede referir

Presenta la herencia de pitón anormal, y como excepción personalizada

  1. clase # base de la herencia BaseException inusual para todas las excepciones
+-- SystemExit # 解释器请求退出
 +-- KeyboardInterrupt  用户中断执行(通常是输入^C)
 +-- GeneratorExit # 生成器(generator)发生异常来通知退出
 +-- Exception # 常规异常的基类
  +-- StopIteration # 迭代器没有更多的值
  +-- StandardError # 标准错误
  | +-- BufferError
  | +-- ArithmeticError
  | | +-- FloatingPointError
  | | +-- OverflowError
  | | +-- ZeroDivisionError
  | +-- AssertionError
  | +-- AttributeError
  | +-- EnvironmentError
  | | +-- IOError
  | | +-- OSError
  | |   +-- WindowsError (Windows)
  | |   +-- VMSError (VMS)
  | +-- EOFError
  | +-- ImportError
  | +-- LookupError
  | | +-- IndexError
  | | +-- KeyError
  | +-- MemoryError
  | +-- NameError
  | | +-- UnboundLocalError
  | +-- ReferenceError
  | +-- RuntimeError
  | | +-- NotImplementedError
  | +-- SyntaxError
  | | +-- IndentationError
  | |   +-- TabError
  | +-- SystemError
  | +-- TypeError
  | +-- ValueError
  |   +-- UnicodeError
  |    +-- UnicodeDecodeError
  |    +-- UnicodeEncodeError
  |    +-- UnicodeTranslateError
  +-- Warning
   +-- DeprecationWarning
   +-- PendingDeprecationWarning
   +-- RuntimeWarning
   +-- SyntaxWarning
   +-- UserWarning
   +-- FutureWarnin
   +-- ImportWarnin
   +-- UnicodeWarnin
   +-- BytesWarning
  1. excepción personalizada
#自定义异常 需要继承Exception
class MyException(Exception):
 
 def __init__(self, *args):
  self.args = args
 
if __name__ == '__main__':
 try:
  raise MyException("自定义异常")
 except MyException as e:
  print e
  1. trampa de excepción
# 示例
str1 = 'abc'
try:
 int(str1)
except IndexError as e:
 print e
except KeyError as e:
 print e
except ValueError as e:
 print e
else:
 print 'try内正常处理'
finally:
 print '无论异常与否,都会执行我'
  1. gatillo activa anormal
# raise xxx
def test_zero(num):
 try:
  if num == 0:
   raise ValueError('参数错误')
  return num
 except Exception as e:
  print e
 
test_zero(0)
  1. Ver las anomalías utilizando el módulo de rastreo

Cuando se produce una excepción, Python puede "recordar" el actual estado de excepción emitida y el programa.
Python mantiene objeto de rastreo (tracking) que contiene información sobre la pila de llamadas función cuando se produce una excepción.
Las anomalías pueden ser causadas en una serie de llamadas a funciones anidadas más profundo en.
Cuando el programa llama a cada función, Python insertar el nombre de función en la "pila de llamadas de función" al principio. Una vez que se produce la excepción, Python buscará un manejador de excepción apropiado. Si la función actual no es gestor de excepciones, la corriente termina la ejecución de la función, Python buscará la persona que llama actual de la función, y así sucesivamente, hasta que se encuentra una coincidencia gestor de excepciones, o Python llegó hasta el programa principal. El hallazgo controlador de excepciones adecuado se llama una "pila eliminado para abrir la solución" (StackUnwinding).
Intérprete mantiene información sobre un lado y coloque la pila de funciones relacionadas, sino que también mantiene la información de la función de pila "platija soluciones abiertas" relacionados.

#示例
def div(num1, num2):
 try:
  result = num1/num2
  return result
 except Exception as e:
  traceback.print_exc()
 
print div(1, 0)
#执行结果
Traceback (most recent call last):
None
 File "F:/Technology-20161005/python/python_project/demo/exceptiondemo/exceptiondemo.py", line 17, in div
 result = num1/num2
ZeroDivisionError: integer division or modulo by zero
# 可以将异常信息写到文件中
traceback.print_exc(file=open('1.txt','w+'))

Por último, recomiendo una reunión pitón buena reputación [ Haga clic para entrar ], hay una gran cantidad de veteranos habilidades de aprendizaje, la experiencia de aprendizaje

, Habilidades de la entrevista, experiencia de trabajo y otra acción, prepararon el mayor cuidado la información introductoria de base cero, información sobre proyectos reales, los programadores de todos los días

Python método para explicar la sincronización de la tecnología, para compartir algunas de las letras y la necesidad de prestar atención a los pequeños detalles

Publicado 48 artículos originales · ganado elogios 21 · Vistas a 60000 +

Supongo que te gusta

Origin blog.csdn.net/haoxun11/article/details/105081866
Recomendado
Clasificación