A fatal error is a catastrophic runtime failure that compromises process stability and usually prevents recovery inside the failing execution. The process may terminate, corrupt its execution state, or lose transactions; an orchestrator can restart the instance, but the same cause may recur. section 7.1.4 section 7.1
Recognize fatal errors by their severity, typical causes, and language-specific forms:
- Java exposes fatal failures through unchecked Error types such as OutOfMemoryError and StackOverflowError; catching them is not a normal recovery strategy. section 7.1.4
- Python may raise MemoryError or RecursionError, while C# may surface OutOfMemoryException or StackOverflowException. section 7.1.4
- Common root causes include exhausting available memory, infinite recursion, and programming mistakes that bring down the entire application. section 7.1.4
When ordinary debugging stops working
A fatal failure may leave the JVM unresponsive, shut it down before startup, or occur only in production. When debug mode cannot cooperate, investigate the logged stack trace and the underlying low-level system behavior rather than treating the failure like an ordinary recoverable exception. section 7.1.4
Table 7.1 Summary of failure types and handling strategies
|
Type of failure
|
Description
|
|---|---|
|
Business logic errors
|
Violations of business rules or expected usage constraints that the system must anticipate and communicate clearly
|
|
Technical problems
|
Failures caused by external systems, infrastructure, configuration, or unavailable technical dependencies
|
|
Programming errors
|
Defects in the code itself caused by incorrect logic, invalid assumptions, or broken invariants
|
|
Fatal errors
|
Critical runtime failures that compromise process stability and usually prevent normal recovery
|
Compare fatal errors with business logic errors, technical problems, and programming errors to choose an appropriate handling strategy. section 7.1.4
