2012-08-16 14 views
26

Si uso pylint (a través de sublimerlinter) consigo siguiente mensaje de advertencia:Cómo corregir: W602 forma obsoleta de elevar una excepción

W602 deprecated form of raising exception

Esto me cómo usar excepciones en mi código:

if CONDITION == True: 
    raise ValueError, HELPING_EXPLANATION 
+1

Agregué esta Q & A bastante trivial porque buscar en Google 'W602 forma obsoleta de elevar excepción' no da como resultado ningún enlace útil. – Framester

Respuesta

28

Levantar la excepción de esa manera:

if CONDITION == True: 
    raise ValueError(HELPING_EXPLANATION) 

De PEP 8 -- Style Guide for Python Code - Programming Recommendations:

Al lanzar una excepción, utilizar elevar ValueError('message') en lugar de la forma más antigua raise ValueError, 'message'.

Se prefiere el formulario que usa paren porque cuando los argumentos de excepción son largos o incluyen el formato de cadena, no es necesario utilizar caracteres de continuación de línea gracias a los paréntesis que contienen. El formulario anterior se eliminará en Python 3.

+16

Del mismo modo, si desea agregar un rastreo en Python 2.x, use 'raise ValueError (HELPING_EXPLANATION), None, tb' en lugar de' raise ValueError, HELPING_EXPLANATION, tb' para evitar esa advertencia. –

+0

Por lo que vale, no hay forma compatible con python3-forward para agregar una traza en Python 2.x. –

+0

@TobiasKienzler - ¡Genial, gracias! Desearía que publicaras eso como respuesta para poder votarlo y ganar un representante, pero en cambio tendrás que conformarte con un voto a favor de tu comentario. – ArtOfWarfare

Cuestiones relacionadas