Un subconjunto fail-stop de un lenguaje de programación es aquel que tiene la misma semántica que el original, excepto en el caso en que surja una condición excepcional . El subconjunto fail-stop debe informar una condición excepcional siempre que el lenguaje superconjunto informe una, pero puede informar adicionalmente una condición excepcional en otros casos.
Los lenguajes de parada por error se utilizan a menudo en sistemas informáticos en los que la corrección es muy importante, ya que es más fácil hacer que dichos sistemas fallen rápidamente . Por ejemplo, el operador "+" en muchos lenguajes de programación no es asociativo debido a la posibilidad de desbordamiento de punto flotante . Reparar estos lenguajes para que fallen rápidamente cuando las propiedades comúnmente asumidas no se cumplen hace que sea mucho más fácil escribir y verificar código correcto.
En muchos lenguajes de programación ampliamente utilizados, el código a continuación puede reducir el valor de la cuenta bancaria si el monto depositado o el valor de la cuenta anterior es muy grande, al provocar que se asigne un valor desbordado a new_bank_account_value.
new_bank_account_value = old_bank_account_value + amount_deposited // Ejemplo de cálculo con números enteros con signo de 32 bits para demostrar que se desbordan por encima de 2.147.483.647 // -2.147.483.646 = 2.147.483.640 + 10
Pero en un lenguaje de detención de fallos que trata el desbordamiento como una condición excepcional, o es correcto o terminará con una condición excepcional.