Question: I often see comments on other Stack Overflow questions about how the use of `except: pass` is discouraged. Why is this bad? Sometimes I just don't care what the errors are and I want to just continue with the code.

```
try:
    something
except:
    pass

```

Why is using an `except: pass` block bad? What makes it bad? Is it the fact that I `pass` on an error or that I `except` any error?

Answer: 
In general, you can classify any error/exception in one of [three categories](http://blogs.msdn.com/b/ericlippert/archive/2008/09/10/vexing-exceptions.aspx):

* **Fatal**: Not your fault, you cannot prevent them, you cannot recover from them. You should certainly not ignore them and continue, and leave your program in an unknown state. Just let the error terminate your program, there is nothing you can do.
* **Boneheaded**: Your own fault, most likely due to an oversight, bug or programming error. You should fix the bug. Again, you should most certainly not ignore and continue.
* **Exogenous**: You can expect these errors in exceptional situations, such as *file not found* or *connection terminated*. You should explicitly handle these errors, and only these.

In all cases `except: pass` will only leave your program in an unknown state, where it can cause more damage.
I am building an application that will run in a data center. It should not generate any errors or raise any exceptions. My data center has a network monitoring system, which includes an SNMP trap receiver.

```
try:
    main()
except as e:
    log(str(e))
    send_snmp_trap(str(e))
    raise

```

except that raise isn't going to go anywhere because it's and the bottom of any stack that might be left.

BTW, this is not a universal panacea by any means. There are some exceptions that can't be caught. SNMP doesn't guarantee delivery. YMMV.