2009-10-07 18 views
35

El tiempo de ejecución me dice:Cómo escribir un bloque de sangría vacío en Python?

espera un bloque sangrado

Pero no quiero escribir nada, excepto dentro de mi bloque, sólo quiero que para atrapar y tragar la excepción.

+0

¿Qué tutorial de Python estás siguiendo? ¿De dónde estás tratando de aprender Python? –

+0

No seguí ningún tutorial. Todo lo que sé que obtuve de la documentación de App Engine –

Respuesta

84

Sólo tiene que escribir

pass 

como en

try: 
    # Do something illegal. 
    ... 
except: 
    # Pretend nothing happened. 
    pass 

EDIT:. @swillden trae un buen punto, es decir, esta es una terrible idea en general. Debería, al menos, decir

except TypeError, DivideByZeroError: 

o cualquier tipo de error que desee controlar. De lo contrario, puedes enmascarar problemas más grandes.

+8

Ten cuidado al usar ese modismo como se expresa arriba. Un "excepto" genérico captará cualquier excepción, incluidos muchos errores de programación, como hacer referencia a variables indefinidas, etc., y la cláusula vacía simplemente se tragará las excepciones. Puede ocultar problemas serios de esta manera. – divegeek

+0

Un mejor ejemplo de modismo podría ser "while condition-with-side-effects: pass". Dicho esto, las afecciones con efectos secundarios también pueden tener un olor. – Steve314

+0

Las excepciones son muy caras. Úselos sabiamente. – Austin

0

que nunca he hecho esto en código más permanente, pero con frecuencia lo hago como un marcador de posición

if some_expression: 
    True 
else: 
    do_something(blah) 

Sólo pegando una verdadera ahí parará el error. No estoy seguro de si hay algo malo sobre esto.

+8

No hay nada de malo en eso técnicamente, pero estas situaciones son la razón por la cual el 'pase' existe en primer lugar. – efotinis

+2

es malo solo porque arroja a los lectores, no es absolutamente idiomático. – u0b34a0f6ae

+1

Prefiero que Ture pase, porque la verdad te hará libre;) –

Cuestiones relacionadas