Javas töödeldakse eriolukordi erilise juhtimismehhanismi - katsendidirektiivi (ingl.k. try/catch) abil. Eriolukorra tekkimise kohas tekitatakse spetsiaalsete omadustega objekt klassist java.lang.Throwable või mõnest selle alamklassist. Juhtimine antakse seda tüüpi eriolukordi töötlevale programmiosale (catch-haru e. püünis) või tagasi antud meetodit välja kutsunud meetodile, kui antud meetod ise eriolukordi ei töötle.
Throwable
Error
LinkageError
ClassCircularityError
ClassFormatError
IncompatibleClassChangeError
NoSuchMethodError
NoSuchFieldError
InstantiationError
AbstractMethodError
IllegalAccessError
NoClassDefFoundError
VerifyError
UnsatisfiedLinkError
UnsatisfiedError
AbstractMethodError
ExceptionInInitializationError
ThreadDeath
VirtualMachineError
InternalError
OutOfMemoryError
StackOverflowError
UnknownError
AWTError
Exception
ClassNotFoundException
CloneNotSupportedException
IllegalAccessException
InstantiationException
InterruptedException
NoSuchMethodException
TooManyListenersException
ParseException
AWTException
IOException
CharConversionException
EOFException
FileNotFoundException
InterruptedIOException
ObjectStreamException
InvalidClassException
InvalidObjectException
NotActiveException
NotSerializableException
OptionalDataException
StreamCorruptedException
WriteAbortedException
SyncFailedException
UnsupportedEncodingException
UTFDataFormatException
MalformedURLException
ProtocolException
SocketException
BindException
ConnectException
NoRouteToHostException
UnknownHostException
UnknownServiceException
RuntimeException
ArithmeticException
ArrayStoreException
ClassCastException
IllegalArgumentException
IllegalThreadStateException
NumberFormatException
FormatException
IllegalMonitorStateException
IllegalStateException
IndexOutOfBoundsException
ArrayIndexOutOfBoundsException
StringIndexOutOfBoundsException
NegativeArraySizeException
NullPointerException
SecurityException
EmptyStackException
MissingResourceException
NoSuchElementException
IllegalComponentStateException
Näit.
catch (Erinditüüp1 muutuja) {
...
catch (Erinditüüp_n muutuja) {
finally {
Võtmesõna try järel olev põhiblokk täidetakse n.-ö. silumisrezhiimis. Kui selle bloki sees (s.h. meetodites, mille poole otseselt või kaudselt pöördutakse) tekib mingi eriolukord, siis suunatakse juhtimine esimesse niisugusesse püünisesse, mis vastab tekkinud erindi tüübile ning seejärel katsendidirektiivist välja. Seega on mõtet järjestada püünised nii, et spetsiifilisemad erindiklassid töödeldaks eespool. Kui esineb ka epiloog võtmesõna finally järel, siis see täidetakse igal juhul (isegi siis, kui püünis sisaldab naasmisdirektiivi).
Püünise päises esinev muutuja on formaalne parameeter, mis lubab viidata tekkinud erindile.
Näit.
Näit.
public Object nextElement()
throws java.util.NoSuchElementException
{
if (votaJargmine()
== null)
throw new
class minuErind extends Exception {
public minuErind () {
super();
}
public minuErind (String s) {
super (s);
}
}