Java as a language was designed to make it impossible for user developed code to result in an application crash .
Any error would result in a nice clean exception being thrown which could be caught, and then handled appropriately.
The reality, as any long time Java developer or system administrator knows, is that the Java Virtual Machine (JVM) itself can and does crash.
This is because the JVM is itself a program written in native code, and like any very large complicated program, the JVM has some bugs in it.
Like any program, when Java crashes, it simply dies and goes away along with your application.
This can be disastrous if the application is a mission critical system.
The application will be down, and the outage may not be noticed until a customer visits your web site,
or the shipping department calls because they haven't received any shipping orders for a few hours.
Once the fact that the application is down is detected, it can potentially take an hour or two longer
for the system administrator to come in and restart it.