Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΎΡΠΈΠ±ΠΊΠ° Π° ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ java
Π ΡΠ·ΡΠΊΠ΅ Java ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (Exceptions) ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ (Errors) ΡΠ²Π»ΡΡΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ. ΠΠΎΠ³Π΄Π° ΠΌΠ΅ΡΠΎΠ΄ Π²ΡΠ·ΡΠ²Π°Π΅Ρ, Π΅ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡΡ «Π±ΡΠΎΡΠ°Π΅Ρ» ΠΎΡ ΡΠ»ΠΎΠ²Π° «throws», ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΎΠ½ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ. ΠΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π½Π΅ Ρ Π»ΡΠ±ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, Π° ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ Throwable.
Π£ΠΏΡΠΎΡΠ΅Π½Π½ΡΡ Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΈΠΉ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΡΠΈΡΡΠ½ΠΊΠ΅:
Checked Exception ΠΎΠ±ΡΠ·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π΅Π΅ (ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ try-catch) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΡΠ΄Π°ΡΡ Π½Π° ΠΎΡΠΊΡΠΏ ΠΎΠ±ΡΠ°ΠΌΠ»ΡΡΡΠΈΠΌ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌ, Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊ Π΄Π΅ΠΊΠ»Π°ΡΠ°ΡΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠΎΡΠ°Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ΅ (checked) ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π΄ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ throws, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π unchecked ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌ ΠΎΡΠ½ΠΎΡΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, NullPointerException, ArrayIndexOutOfBoundsException, ClassCastExcpetion ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. ΠΡΠΎ ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅. ΠΠ΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ°ΠΊ ΡΠΎΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠΎΡΠ°Π΅Ρ Π²ΡΠ΅ ΡΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π±ΡΠ»ΠΎ Π±Ρ Π³Π»ΡΠΏΠΎ.
1. Π’Π°ΠΊ ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅ Π½ΡΠΆΠ½ΠΎ Π±ΡΠΎΡΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ?. ΠΠ° ΡΡΠΎΡ Π²ΠΎΠΏΡΠΎΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ ΠΏΡΠΎΡΡΠΎ: Π΅ΡΠ»ΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ Π² ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ «Π±ΡΠΎΡΠ°ΡΡ» ΠΎΡΠΈΠ±ΠΊΡ. ΠΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΎΠ΄ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π½Π°ΡΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ: Π½Π° Π²Ρ ΠΎΠ΄ Integer.parseInt(String) ΠΏΠΎΠ΄Π°ΡΡ ΡΡΡΠΎΠΊΡ Ρ Π±ΡΠΊΠ²Π°ΠΌΠΈ ΠΈ ΠΏΠΎ Π·Π°ΡΠ»ΡΠ³Π°ΠΌ ΠΏΠΎΠ»ΡΡΠΈΡΡ NumberFormatException.
Π§Π°ΡΡΠΎ ΠΏΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²Π΅Π±-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΏΠ΅ΡΠ²ΡΠΌΠΈ ΡΡΡΠΎΠΊΠ°ΠΌΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Ρ ΠΏΠΈΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π²ΠΈΠ΄Π°:
ΠΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½Π° Π²ΡΠ·ΡΠ²Π°ΡΡΠ΅ΠΉ ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π°ΡΡΡΠ°ΡΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ΅Π³ΠΎ ΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Π² Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΈΡ ΠΆΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
2. Π ΡΡΠΎ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ Π±ΡΠΎΡΠ°ΡΡ?. ΠΡΠ±ΠΎΡ Π½Π΅ ΡΠΎ ΡΡΠΎΠ±Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π²Π΅Π»ΠΈΠΊ, Π½ΠΎ ΠΈ Π½Π΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°ΡΠ΅Π½: checked, unchecked (runtime), unchecked (error).
Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ, Π² ΠΏΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅ΠΌ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π΅ ΡΠ»ΡΡΠ°Π΅Π² Error Π²Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. ΠΡΠΎ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, StackOverflowError), Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ JVM.
Checked Exceptions, ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π²ΡΡΠ΅, Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ°-ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΅Π΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΎΠΏΠΈΡΠ°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠ°ΠΊ «Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ».
Π‘ unchecked exception ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡΡΠΏΠΈΡΡ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ. Π ΡΠ»ΡΡΠ°Π΅ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΌ ΡΠ΅ΡΠ°Π΅Ρ, Π±ΡΠ΄Π΅Ρ ΠΎΠ½ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΡΡΡ ΠΎΡΠΈΠ±ΠΊΡ, ΠΈΠ»ΠΈ ΠΆΠ΅ Π½Π΅Ρ (ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ).
ΠΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ: Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Π±ΠΎΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΡ Π² ΠΌΠ΅ΡΠΎΠ΄ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, ΠΈ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ-ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²Π°ΠΆΠ½ΠΎ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Ρ ΡΡΠΈΠΌ (ΠΈ ΡΡΠΎ ΠΎΠ½ ΡΠΌΠΎΠΆΠ΅Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ), ΠΎΠΏΠΈΡΡΠ²Π°ΠΉΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ throws, ΠΈΠ½Π°ΡΠ΅ Π±ΡΠΎΡΠ°ΠΉΡΠ΅ unchecked exception.
3. ΠΡ ΠΈ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ? ΠΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΡ Π»ΡΡΡΠ΅ ΡΠ°ΠΌ, Π³Π΄Π΅ ΠΎΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π°. ΠΡΠ»ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π° Π½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΈΠ½ΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅, ΡΡΠΎ Π΄Π΅Π»Π°ΡΡ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, Π΅Π³ΠΎ Π½ΡΠΆΠ½ΠΎ Π±ΡΠΎΡΠ°ΡΡ Π΄Π°Π»ΡΡΠ΅, ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΉΠ΄Π΅ΡΡΡ Π½ΡΠΆΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, Π»ΠΈΠ±ΠΎ ΠΏΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π²ΡΠ»Π΅ΡΠΈΡ ΡΠΎΠ²ΡΠ΅ΠΌ.
ΠΡ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±Π»ΠΎΠΊΠ° try-catch-finally. Π‘ΡΠ°Π·Ρ ΡΠΊΠ°ΠΆΡ Π²Π°ΠΌ ΡΠ°ΠΊΡΡ Π²Π΅ΡΡ: Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΡΡΡΠΎΠΉ catch Π±Π»ΠΎΠΊ!. ΠΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΠΎΡ ΡΠΆΠ°Ρ ΡΠ°ΠΊ:
ΠΡΠ»ΠΈ ΠΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ try Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ Π½ΠΈΠΊΠΎΠ³Π΄Π°, Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Π² ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ ΠΊΠΎΠ΄Π°:
ΠΡΠ»ΠΈ ΠΆΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π² «ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ» ΠΊΠΎΠ³Π΄Π° Ρ Π½ΠΈΠΌ Π½ΠΈΡΠ΅Π³ΠΎ ΡΠΆΠ΅ ΡΠ΄Π΅Π»Π°ΡΡ Π±ΡΠ΄Π΅Ρ Π½Π΅Π»ΡΠ·Ρ, Π»ΡΡΡΠ΅ ΠΎΠ±Π΅ΡΠ½ΠΈΡΠ΅ Π΅Π³ΠΎ Π² RuntimeException ΠΈ ΠΏΡΠΎΠ±ΡΠΎΡΡΡΠ΅ Π½Π°Π²Π΅ΡΡ , Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
Π‘ΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Π·Π΄Π΅ΡΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, siteUrl ΡΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ· ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΊΡΠΎ-ΡΠΎ Π΄ΠΎΠΏΡΡΡΠΈΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΊΡ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ Π°Π΄ΡΠ΅ΡΠ° ΡΠ°ΠΉΡΠ°. ΠΠ΅Π· ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠΈΠ³Π° ΠΈ ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΡ Π½ΠΈΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Π΅Π»Π°ΡΡ Π½Π΅Π»ΡΠ·Ρ, ΡΠ°ΠΊ ΡΡΠΎ RuntimeException Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡΠ°Π²Π΄Π°Π½.
Updated 28.08.2009: Π₯ΠΎΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ Π²Π°ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ°ΡΠ°ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ Π±Π»ΠΎΠΊΠΎΠ² try-catch-finally.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ Π±Π»ΠΎΠΊ finally Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΠ»ΡΡ? ΠΠΎΠΆΠ½ΠΎ:
ΠΡ ΠΈ Π΅ΡΠ΅ ΠΎΠ΄Π½Π° ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ Π²Π΅ΡΡ. ΠΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π°:
ΠΠ΄Ρ Π²Π°ΡΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² ΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠ΅Π².
Π₯ΠΎΡΠΎΡΠΈΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅:
ΠΠΎ Π½ΠΈ Π² ΠΊΠΎΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΡΡΠ΅ΠΉ Π±ΠΈΠ·Π½Π΅ΡΡ-Π»ΠΎΠ³ΠΈΠΊΠΈ.
P.S. ΠΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ Π±ΡΠ²Π°ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅. ΠΠΎ ΡΡΠΎ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 20%.
ΡΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠΎΠΌΡ ΡΡΠΎ ΠΊΠΎΠ΄ Π² Π½Π°ΡΠ°Π»Π΅ ΠΏΠΎΡΠΎΠΊΠ° Π±ΡΠ΄Π΅Ρ Π² 80% ΡΠ»ΡΡΠ°Π΅Π² ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΈΡΠΈΠ½Π΅ ΠΈ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΡΠ΅Π΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΡΡΠΊ ΡΡΡΠΉΡ Π½Π° Π²ΡΠ± ΡΡΡΠ°Π½ΠΈΡΠ΅, Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΈ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΎ ΡΠΎΠΌ ΡΡΠΎ Π³Π΄Π΅ΡΠΎ Π² Π³Π»ΡΠ±ΠΈΠ½Π΅ ΠΊΡΠΎΡΠΎ Π²ΡΠ±ΡΠΎΡΠΈΠ» Π°Π½ΡΠ΅ΠΊΠ΅Π΄ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ°ΠΌΡΠΌ ΡΠ΄ΡΡΡΠ°ΡΡΠΈΠΌ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ: Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΡΠΎ-ΡΠΎ Π½Π°ΡΠ½Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΡΠΈΠΊΠ»Π΅ ΡΠΎ ΠΈΠ·-Π·Π° ΠΎΠ΄Π½ΠΎΠΊΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠ΅ΡΠ΅Π΄Π°Π½ΠΎΠ³ΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠΊΠΈΠ½Π΅Ρ Π°Π½ΡΠ΅ΠΊΠ΅Π΄ ΠΈΠ·-Π·Π° Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ ΡΠΊΠ°ΠΆΠ΅ΠΌ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΏΠΈΡΠΊΠ° ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΡΡΠΎΠΊ Π½Π° ΡΠΊΡΠ°Π½Π΅ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΡ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ, Π° ΠΌΠΎΠ³ Π±Ρ ΠΏΡΠΎΡΡΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π° ΠΎΠ΄ΠΈΠ½ ΠΌΠ΅Π½ΡΡΠ΅ (ΡΠΎΡ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ»ΡΠΆΠΈΠ» ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ) Π ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π΄Π΅Π²Π΅Π»ΠΎΠΏΠ΅Ρ ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΡΠΎ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΊΠΈΠ½ΡΡΡ ΡΠΎΡ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ ΡΠ°Π½ΡΠ°ΠΉΠΌ, Π΅ΡΠ»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π°ΡΡΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡΠ° Π²ΡΠ±ΡΠΎΡΠΈΡ ΡΠ΅ΠΊΠ΅Π΄ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ ΡΠ΅ΡΠΈΡ ΡΡΠΎ Π΅ΠΌΡ Π΄Π΅Π»Π°ΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ, ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π° ΡΠ»Π΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΡΠ°Π½Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΡΠ΅ΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π°Π½ΡΠ΅ΠΊΠ΅Π΄ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π³Π΄Π΅ ΠΏΠΎΠΏΠ°Π»ΠΎ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠΎΠ΄ ΠΌΠ°Π»ΠΎ ΠΏΡΠΈΠ³ΠΎΠ΄Π½ΡΠΌ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΎΡ ΡΠ°ΠΌΡΠΉ ΠΊΠΎΠ½ΡΡΠ°ΠΊΡ ΠΌΠ΅ΡΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΏΠΎΠ½ΡΡΠΈΡ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΡΠ»Π΅ΡΠ΅ΡΡ ΠΈΠ· Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π°. Π Π²ΡΠ»Π΅ΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ ΡΠ°Π· Π»ΡΠ±ΡΡ Π½Π° ΠΏΡΠΎΠ΄Π°ΠΊΡΠ΅Π½Π΅ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΡΠΈΡΡΠ΅ΠΌΡ Π·Π°ΠΊΠ°Π·ΡΠΈΠΊΡ.
BestProg
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΠΎΠΈΡΠΊ Π½Π° Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠ°Ρ :
1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ?
ΠΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ β ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΎΡΠΈΠ±ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ° Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π² ΡΠ»ΡΡΠ°ΡΡ :
ΠΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π΅ΡΡΡ Π²Π°ΠΆΠ½ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΏΡΠΎΡΠ΅ΡΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ Π½Π° Java.
2. ΠΠΎΠ½ΡΡΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ·ΡΠΊΠ΅ Java
ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΉ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° (Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ, ΠΈ Ρ.ΠΏ.). Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ.
Π ΡΠ·ΡΠΊΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Java, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΡΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΎΠ±ΡΠ΅ΠΊΡ, ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΠΈΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° Π² Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°. ΠΠ±ΡΠ΅ΠΊΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΠΈΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠΉ (ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ) ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ ΠΈ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅ΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ β ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠΏΠΈΡΡΠ²Π°Π΅Ρ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
3. ΠΠ°ΠΊΠΈΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ?
Π ΡΠ·ΡΠΊΠ΅ Java ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π΄Π²ΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ²:
4. Π ΠΊΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Java?
Π‘ΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Java Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°:
ΠΡΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ΄ tryβ¦catch Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΠΎΠΉ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠΎΠ³Π΄Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π½Π΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ.
5. ΠΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Java?
ΠΠ»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Java ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π°:
Π ΡΠ·ΡΠΊΠ΅ Java ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ) ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ . ΠΠ°ΠΆΠ½ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠΈΠ»Π° ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅.
Π Π±Π»ΠΎΠΊΠ΅ try ΡΠ°Π·ΠΌΠ΅ΡΠ°ΡΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ, Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ½ΡΡΡΠΈ Π±Π»ΠΎΠΊΠ° try ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠ΅ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ try ΠΈ catch ΡΠΎΡΡΠ°Π²Π»ΡΡΡ Π΅Π΄ΠΈΠ½ΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅. ΠΠΏΠ΅ΡΠ°ΡΠΎΡ finally ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°ΡΡ.
7. ΠΡΠΈΠΌΠ΅Ρ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ Π΅Π³ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Java
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ Π±Π»ΠΎΠΊ tryβ¦catch ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅ΡΡΡ Π²ΡΠ·ΠΎΠ² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
Π’Π΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° DemoExceptions ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ:
ΠΡΠ»ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ DivNumbers() ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ
ΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ·Π²Π°Π½Π½ΡΠΉ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Java, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΡΠ²Π΅Π΄Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅
8. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° tryβ¦catch
Π’Π΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° DemoExceptions ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
Π’Π΅ΠΏΠ΅ΡΡ, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅ΡΠΎΠ΄Π° DivNumbers2() Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅
ΡΠΈΡΡΠ΅ΠΌΠ° Π²ΡΠ΄Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅
ΠΠΎΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ Π²ΡΠ²ΠΎΠ΄ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½ΡΠΆΠ½ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠ΅ΠΊΡΡ Π² Π±Π»ΠΎΠΊΠ΅ catch Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
ΠΠΎΡΠ»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΎΠΉ
Π’Π΅ΠΊΡΡ ΠΊΠ»Π°ΡΡΠ° DemoExceptions ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ
Π±ΡΠ΄Π΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ Π²ΡΠ΅Π³Π΄Π°. Π ΠΏΠ΅ΡΠ΅Π΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° DivNumbers3() Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΊΠ»Π°ΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
10. ΠΠ°ΠΊ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ? ΠΡΠΈΠΌΠ΅Ρ
Π ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ
11. ΠΡΠΈΠΌΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ (Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² catch )
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΊΠ»Π°ΡΡΠ° DivArrays ΡΠ»Π΅Π΄ΡΡΡΠ°Ρ
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΌ ΠΊΠΎΠ΄Π΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Java
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ (exception handling) β ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΡΠ·ΡΠΊΠΎΠ² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΡΠ΅Π°ΠΊΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡ ΠΊ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ (Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΡΡΠΈ) Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΉ ΠΎΡΡΠ°Π±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π΅Ρ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΠ΄Π΅ΡΡ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ getAreaValue ΠΌΡ Π±ΡΠΎΡΠ°Π΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ IllegalArgumentException Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° throw. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π² ΡΠΈΠ³Π½Π°ΡΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° ΠΎΡΡΡΡΡΡΠ²ΡΠ΅Ρ throws IllegalArgumentException, ΡΡΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ IllegalArgumentException ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΡΠΌ, ΠΎ Π½ΠΈΡ ΠΌΡ Π΅ΡΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ.
ΠΠ±ΡΠΈΠΉ Π²ΠΈΠ΄ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π΄Π»Ρ «ΠΏΠΎΠΈΠΌΠΊΠΈ» ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅ Π΄Π»Ρ ΠΏΠ»ΠΎΡΠ°Π΄ΠΈ ΠΏΡΡΠΌΠΎΡΠ³ΠΎΠ»ΡΠ½ΠΈΠΊΠ°:
ΠΠ΄Π΅ΡΡ ΠΌΡ ΠΏΠΎΠΉΠΌΠ°Π»ΠΈ IllegalArgumentException ΠΈ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π»ΠΈ Π΄Π°Π½Π½ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ ΡΡΠΎ «ΠΏΠΎΡΠΈΠ½ΠΈΡΡ» ΡΠ°ΠΊΡΡ ΠΏΠΎΠ»ΠΎΠΌΠΊΡ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΆΠ΅ ΠΌΡ ΡΠ³Π°Π΄ΡΠ²Π°ΡΡ ΡΡΠΎ Ρ ΠΎΡΠ΅Π» ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ :). ΠΠΎ ΡΡΠΎΠΌΡ ΠΌΡ ΠΏΡΠΎΠ±ΡΠ°ΡΡΠ²Π°Π΅ΠΌ Π΄Π°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π»ΡΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ «throw e;». Π’Π°ΠΊΠΎΠ΅ ΡΠ°ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ(Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ).
finally
ΠΠ½ΠΎΠ³Π΄Π° ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΡΠ°ΡΡΠΎΠΊ ΠΊΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ»ΠΈ Π²ΠΎΠ·Π±ΡΠΆΠ΄Π΅Π½Ρ ΠΈ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½Ρ. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ°ΡΡΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ finally. ΠΠ°ΠΆΠ΅ Π² ΡΠ΅Ρ ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Π½Π΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·Π±ΡΠΆΠ΄Π΅Π½Π½ΠΎΠΌΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ°Π·Π΄Π΅Π»Π° catch, Π±Π»ΠΎΠΊ finally Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΉΠ΄Π΅Ρ ΠΊ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ°ΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π·Π° ΡΠ°Π·Π΄Π΅Π»ΠΎΠΌ try. Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π° try Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π·Π΄Π΅Π» catch ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ finally. ΠΠ»ΠΎΠΊ finally ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π΅Π½ Π΄Π»Ρ Π·Π°ΠΊΡΡΡΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ Π»ΡΠ±ΡΡ Π΄ΡΡΠ³ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ², Π·Π°Ρ Π²Π°ΡΠ΅Π½Π½ΡΡ Π΄Π»Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² Π½Π°ΡΠ°Π»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Π°. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠ»Π°ΡΡΠ° Ρ Π΄Π²ΡΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Π°ΠΌΠΈ, Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌ, Π½ΠΎ Π² ΠΎΠ±ΠΎΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ ΡΠ°Π·Π΄Π΅Π»Π° finally.
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ procA ΠΈΠ·-Π·Π° Π²ΠΎΠ·Π±ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΠ΅ΠΆΠ΄Π΅Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π²ΡΡ ΠΎΠ΄ ΠΈΠ· Π±Π»ΠΎΠΊΠ° try, Π½ΠΎ ΠΏΠΎ ΠΏΡΡΠΈ Β«Π½Π°ΡΡΠΆΡΒ» Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΠ°Π·Π΄Π΅Π» finally. ΠΡΡΠ³ΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ procB Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΠΎΡΡΠ΅Π³ΠΎ Π² try-Π±Π»ΠΎΠΊΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° return, Π½ΠΎ ΠΈ ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠ΅ΡΠ΅Π΄ Π²ΡΡ ΠΎΠ΄ΠΎΠΌ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠ° finally. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠΉ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠ²Π»ΡΡΡΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° java.lang.Throwable. Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΡΡΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΠ»ΠΈ Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠ² ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ «Π±ΡΠΎΡΠ΅Π½Ρ» JVM ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ «Π±ΡΠΎΡΠ΅Π½Ρ» Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° throw.
ΠΡΡΠΌΡΠΌΠΈ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠ°ΠΌΠΈ ΠΊΠ»Π°ΡΡΠ° Throwable ΡΠ²Π»ΡΡΡΡΡ Error ΠΈ Exception.
ΠΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½Π° Java ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΄Π΅Π»ΡΡΡ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ Exception. ΠΡΠ° ΠΈΠ΅ΡΠ°ΡΡ ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΡΡΡ Π½Π° Π΄Π²Π΅ Π²Π΅ΡΠ²ΠΈ: ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠ΅ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° RuntimeException, ΠΈ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° RuntimeException Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ Π½Π΅ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ², Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΈΠ±ΠΎΠΊ Π²Π²ΠΎΠ΄Π°-Π²ΡΠ²ΠΎΠ΄Π°, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΡ ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²ΠΏΠΎΠ»Π½Π΅ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
Π₯ΠΎΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Java ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°ΡΡΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ, Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π²Π°ΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠΈΠΏΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΡ Π΄Π»Ρ Π²Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΡΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΠΏΡΠΎΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ: ΠΏΡΠΎΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ Exception (ΠΊΠΎΡΠΎΡΡΠΉ, ΡΠ°Π·ΡΠΌΠ΅Π΅ΡΡΡ, ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ Throwable). ΠΠ°ΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΡ Π½Π΅ ΠΎΠ±ΡΠ·Π°Π½Ρ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ ΡΡΠΎ-Π»ΠΈΠ±ΠΎ β Π²Π°ΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎ ΠΈΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΠΈΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΠ΅ ΡΠΈΠΏΠΎΠ², ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ΄Π½ΠΎΠΌΡ Π±Π»ΠΎΠΊΡ try ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ°Π·Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² catch Ρ ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΎ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π΅ΡΠ»ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΡΠΈΠ±ΠΎΠΊ Π½Π΅ ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ.
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ try-with-resources
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π±ΡΠΎΡΠ°ΡΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈΡΡ ΡΡΠΆΠ°ΡΡ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
ΠΠ°ΠΊ Π±ΡΠΎΡΠΈΡΡ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ Π΅Π³ΠΎ (Ρ Π°ΠΊ)
ΠΠ΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΠΈ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ API ΡΠ·ΡΠΊΠ° java ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΎΡΠΈΡΡ ΠΌΠ°Π³ΠΈΡ :).
Π ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ΅ΡΠ»Π΅ΠΊΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Unsafe ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΡΠ½ΠΎ. Π£ ΠΊΠ»Π°ΡΡΠ° Unsafe ΠΏΡΠΈΠ²Π°ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ. Π Π΅ΡΠ»ΠΈ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ Π²ΡΠ·Π²Π°ΡΡ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ getUnsafe() ΡΠΎ Π±ΡΠ΄Π΅Ρ Π±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ SecurityException.
ΠΠ°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Ρ Ρ ΠΎΡΠ΅Π» ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ΅Π±Π΅ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΡ ΠΏΠΎ ΠΈΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π» ΠΏΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ. ΠΠΎ ΠΏΠΎΠ»ΡΡΠΈΠ»ΠΎΡΡ ΡΠ°ΠΊ, ΡΡΠΎ ΡΠΏΠ°ΡΠ³Π°Π»ΠΊΠ° Π²ΡΡΠΎΡΠ»Π° Π² ΡΡΠ°ΡΡΡ π
ΠΠ°Π΄Π΅ΡΡΡ ΠΎΠ½Π° ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΏΠ΅ΡΠ΅Π΄ ΡΠΎΠ±Π΅ΡΠ΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΈΠ»ΠΈ ΠΏΡΠΎΡΡΠΎ Π²ΡΠΏΠΎΠΌΠ½ΠΈΡΡ/ΡΠ³Π»ΡΠ±ΠΈΡΡ Π·Π½Π°Π½ΠΈΡ π Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ Π·Π° Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅!
ΠΡΠ»ΠΈ ΠΠ°ΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ°ΡΡΡ, ΠΏΡΠΎΠ³ΠΎΠ»ΠΎΡΡΠΉΡΠ΅ Π·Π° Π½Π΅Π΅
ΠΠΎΠ»ΠΎΡΠΎΠ²: 86 ΠΠΎΠ»ΠΎΡΠΎΠ²Π°ΡΡ
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² Java β ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² Ρ ΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π² Java ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (exception), ΠΈΠ»ΠΈ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ, ΠΈΠΌΠ΅Π΅Ρ ΠΌΠ΅ΡΡΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΈΠ΅ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°/ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π² Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΡΠΌ, ΠΈ, ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅, ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠ»ΡΡΠ°ΠΈ ΡΡΠ΅Π±ΡΡΡ Π² Java ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΈΡΠΈΠ½Ρ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΡΠΈΡΠΈΠ½, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ²Π»Π΅ΡΡ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°Π»Π΅Π΅ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ ΡΡΠ΄ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΡΡΠ΅Π½Π°ΡΠΈΠ΅Π², Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π΄Π°Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π²ΡΠ·Π²Π°Π½Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π΄ΡΡΠ³ΠΈΠ΅ β ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΏΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΠ»ΡΠΆΠΈΡΡ ΡΠ±ΠΎΠΉ Π² ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΡΡΠ°Ρ .
ΠΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠΈΡΡ ΡΡΠΈ ΡΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ½Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΡΠΈΠΏΠΎΠ² ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠ΅ΠΌ ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΡΠΈΡΡΠ°ΡΠΈΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΈΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠΏΠΈΡΠΎΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Java Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΊΠ»Π°ΡΡ FileReader Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π°, Π² ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΡΠ°ΠΉΠ» Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ FileNotFoundException, ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ 1
ΠΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄ΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ:
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΠ΅. Π Π²ΠΈΠ΄Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ read() ΠΈ close() ΠΊΠ»Π°ΡΡΠ° FileReader Π²ΡΠ·ΡΠ²Π°ΡΡ IOException, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠΈΡΡ Π²Π°Ρ ΠΎΠ± ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ IOException, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ FileNotFoundException.
Π ΠΏΡΠΈΠΌΠ΅ΡΡ, Π΅ΡΠ»ΠΈ Π²Π°ΠΌΠΈ Π² Π²Π°ΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π±ΡΠ» ΠΎΠ±ΡΡΠ²Π»Π΅Π½ ΠΌΠ°ΡΡΠΈΠ² ΠΈΠ· 5 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΏΠΎΠΏΡΡΠΊΠ° Π²ΡΠ·ΠΎΠ²Π° 6-Π³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠ²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ArrayIndexOutOfBoundsExceptionexception.
ΠΡΠΈΠΌΠ΅Ρ 2
ΠΡΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ Π²ΡΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅:
ΠΠ΅ΡΠ°ΡΡ ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Java ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ΄ΡΠΈΠΏΡ ΠΊΠ»Π°ΡΡΠ° java.lang.Exception. ΠΠ»Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠΎΠΌ ΠΊΠ»Π°ΡΡΠ° Throwable. ΠΠΎΠΌΠΈΠΌΠΎ ΠΊΠ»Π°ΡΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π²ΡΠΈΡ ΡΡ ΠΈΠ· ΠΊΠ»Π°ΡΡΠ° Throwable.
ΠΡΠΈΠ±ΠΊΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π²ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ±ΠΎΠ΅Π², ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Java. ΠΠ΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ, Π²ΡΡΠ²Π»Π΅Π½Π½ΡΡ ΡΡΠ΅Π΄ΠΎΠΉ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΡΠΈΠΌΠ΅ΡΡ: JVM ΠΈΡΡΠ΅ΡΠΏΠ°Π» ΠΈΠΌΠ΅ΡΡΠΈΠΉΡΡ ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ. ΠΠ±ΡΡΠ½ΠΎ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΊΠΈ, Π²ΡΠ·Π²Π°Π½Π½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ.
ΠΠ»Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π΄Π΅Π»ΠΈΡΡΡ Π½Π° Π΄Π²Π° ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΏΠΎΠ΄ΠΊΠ»Π°ΡΡΠ°: ΠΊΠ»Π°ΡΡ IOException ΠΈ ΠΊΠ»Π°ΡΡ RuntimeException.
ΠΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ (checked) ΠΈ Π½Π΅ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΡ (unchecked) Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² Java.
ΠΠ΅ΡΠΎΠ΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ°Π»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΏΠΈΡΠΎΠΊ Π²Π°ΠΆΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ Throwable.
β | ΠΠ΅ΡΠΎΠ΄ ΠΈ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ |
1 | public String getMessage() ΠΠΎΠ·Π²ΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ. ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ Throwable. |
2 | public Throwable getCause() ΠΠΎΠ·Π²ΡΠ°Ρ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠΌ Throwable. |
3 | public String toString() ΠΠΎΠ·Π²ΡΠ°Ρ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ°, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ getMessage(). |
4 | public void printStackTrace() ΠΡΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ° toString() ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΡΠ΅ΠΊΠ° Π² System.err, ΠΏΠΎΡΠΎΠΊ Π²ΡΠ²ΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΎΠΊ. |
5 | public StackTraceElement [] getStackTrace() ΠΠΎΠ·Π²ΡΠ°Ρ ΠΌΠ°ΡΡΠΈΠ²Π°, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π³ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΡΠ΅ΠΊΠ°. ΠΠ»Π΅ΠΌΠ΅Π½Ρ Ρ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ 0 ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π²Π΅ΡΡΠΈΠ½Ρ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ², ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° Π΄Π½Π΅ ΡΡΠ΅ΠΊΠ° Π²ΡΠ·ΠΎΠ²ΠΎΠ². |
6 | public Throwable fillInStackTrace() ΠΠ°ΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ ΡΡΠ΅ΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Throwable ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ ΡΡΠ΅ΠΊΠ°, Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ ΠΊΠ°ΠΊΡΡ-Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π² ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ΅ ΡΡΠ΅ΠΊΠ°. |
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ β try ΠΈ catch
ΠΠ΅ΡΠΎΠ΄ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ² try ΠΈ catch.
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅
ΠΠ»ΠΎΠΊ try/catch ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½Π°ΡΠ°Π»Π΅ ΠΈ ΠΊΠΎΠ½ΡΠ΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΠΎΠΆΠ΅Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠΎΠ΄ Π² ΡΠΎΡΡΠ°Π²Π΅ Π±Π»ΠΎΠΊΠ° try/catch ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌ ΠΊΠΎΠ΄ΠΎΠΌ, ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ try/catch Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠΎΠ΄, ΠΏΡΠ΅Π΄ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΉ ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌ, ΡΠ°Π·ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊΠ΅ try. Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ catch. ΠΠ° ΠΊΠ°ΠΆΠ΄ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ try Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊ catch Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊ finally.
ΠΠΏΠ΅ΡΠ°ΡΠΎΡ catch Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ. ΠΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, Π±Π»ΠΎΠΊ catch (Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊΠΈ), ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π·Π° try, Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠ΅Π½. Π ΡΠ»ΡΡΠ°Π΅, Π΅ΡΠ»ΠΈ ΡΠΈΠΏ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π΄ΡΠ΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² Π±Π»ΠΎΠΊΠ΅ catch, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² Π±Π»ΠΎΠΊ catch Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΎΠΌΡ, ΠΊΠ°ΠΊ Π°ΡΠ³ΡΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΡΠΈΠΌΠ΅Ρ
ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΠΌΠ°ΡΡΠΈΠ² Ρ Π·Π°ΡΠ²Π»Π΅Π½Π½ΡΠΌΠΈ Π΄Π²ΡΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ. ΠΠΎΠΏΡΡΠΊΠ° ΠΊΠΎΠ΄Π° ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΡΠ΅ΡΡΠ΅ΠΌΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΌΠ°ΡΡΠΈΠ²Π° ΠΏΠΎΠ²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ catch
ΠΠ° Π±Π»ΠΎΠΊΠΎΠΌ try ΠΌΠΎΠ³ΡΡ ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² catch. Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΡ Π±Π»ΠΎΠΊΠΎΠ² catch Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π²ΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡ ΡΡΠΈ Π±Π»ΠΎΠΊΠ° catch, ΠΎΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠ»Π΅ ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎΠ³ΠΎ try ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π±Π»ΠΎΠΊΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»ΡΠ½ΡΠΌ. Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΠ΅ΡΠ²ΡΠΉ Π±Π»ΠΎΠΊ catch Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΡΠ»ΠΈ ΡΠΈΠΏ Π΄Π°Π½Π½ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ²ΠΏΠ°Π΄Π°Π΅Ρ Ρ ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅Π’ΠΈΠΏ1, ΠΎΠ½ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. Π ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊΠΎ Π²ΡΠΎΡΠΎΠΌΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ catch. ΠΡΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΡΡΡ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ ΠΏΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π»ΠΈΠ±ΠΎ ΠΎΠ½ΠΎ Π½Π΅ ΠΏΡΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π³ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Π° Π±ΡΠ΄Π΅Ρ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ΅Π½ΠΎ, ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΠ΅Π½ΠΎ ΠΊ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²ΡΡΡΠ΅ΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π² ΡΡΠ΅ΠΊΠ΅ Π²ΡΠ·ΠΎΠ²ΠΎΠ².
ΠΡΠΈΠΌΠ΅Ρ
ΠΠ°Π»Π΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ ΠΊΠΎΠ΄Π°, Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΡΡΠΈΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡΠ°ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² try/catch.
ΠΠ΅ΡΠ΅Ρ Π²Π°Ρ ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΠΏΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
Π ΡΡΠ΅Π΄Π΅ Java 7, ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° catch, Π΄Π°Π½Π½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ΄. ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ:
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° throws/throw
Π ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° throws Π² Java. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ throws ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Π°.
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° throw Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π²Π½ΠΎΠ²Ρ Π²ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ»ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅Π½ΠΎ.
Π‘Π»Π΅Π΄ΡΠ΅Ρ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° throw ΠΈ throws Π² Java, ΡΠ°ΠΊ ΠΊΠ°ΠΊ throws ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π° throw, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΉ Π½ΠΈΠΆΠ΅ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ, ΡΡΠΎ ΠΈΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ RemoteException:
ΠΡΠΈΠΌΠ΅Ρ 1
ΠΠ΅ΡΠΎΠ΄ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΡΡΠ²ΠΈΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΡΡΡ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ ΠΎΠ΄Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΅Π³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ΅ΡΠ΅ΡΠ½Ρ, ΠΎΡΠ΄Π΅Π»Π΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° Π·Π°ΠΏΡΡΡΠΌΠΈ. Π ΠΏΡΠΈΠΌΠ΅ΡΡ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΎΠΏΠΎΠ²Π΅ΡΠ°Π΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠΌ Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΡΡ RemoteException ΠΈ InsufficientFundsException:
ΠΡΠΈΠΌΠ΅Ρ 2
ΠΠ»ΠΎΠΊ finally
Π Java finally ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π° Π±Π»ΠΎΠΊΠΎΠΌ try Π»ΠΈΠ±ΠΎ Π±Π»ΠΎΠΊΠΎΠΌ catch. ΠΠ»ΠΎΠΊ finally Π² ΠΊΠΎΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π²ΡΠ΅Π³Π΄Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ Π½Π°Π»ΠΈΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° finally ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠΉ Π΄Π»Ρ ΠΎΡΠΈΡΡΠΊΠΈ, Π½Π΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠΌ ΠΊΠΎΠ΄Π΅.
ΠΠ»ΠΎΠΊ finally Π² Java ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ² catch, Π΅Π³ΠΎ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΡΠΈΠΌΠ΅Ρ
ΠΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ:
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ try-with-resources
Π Π½ΠΎΡΠΌΠ΅, ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π²ΠΈΠ΄ΠΎΠ² ΡΠ΅ΡΡΡΡΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΠΏΠΎΡΠΎΠΊΠΈ, ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΠΈ Π΄Ρ., Π½Π°ΠΌ ΠΏΡΠ΅Π΄ΡΡΠΎΠΈΡ Π·Π°ΠΊΡΡΡΡ ΠΈΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠ° finally. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅, Π½Π°ΠΌΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΠ°ΠΉΠ»Π° ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ FileReader, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½ Π·Π°ΠΊΡΡΠ²Π°Π΅ΡΡΡ Π±Π»ΠΎΠΊΠΎΠΌ finally.
ΠΡΠΈΠΌΠ΅Ρ 1
ΠΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ try-with-resources, ΡΠ°ΠΊΠΆΠ΅ ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠ°Ρ ΠΊΠ°ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠ΅ΡΡΡΡΠ°ΠΌΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ Π² 7-ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Java, ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°ΠΊΡΡΡΠΈΠ΅ Π²ΡΠ΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ², ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π±Π»ΠΎΠΊΠ° try catch.
Π§ΡΠΎΠ±Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ, Π²Π°ΠΌ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π·Π°Π΄Π°Π½Π½ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π² ΠΊΡΡΠ³Π»ΡΡ ΡΠΊΠΎΠ±ΠΊΠ°Ρ , ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ΅ΡΡΡΡ Π±ΡΠ΄Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΊΡΡΡ ΠΏΠΎ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠ°. ΠΠΈΠΆΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ try-with-resources.
Π‘ΠΈΠ½ΡΠ°ΠΊΡΠΈΡ
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π½ΠΈΠΆΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Π² ΡΠ°ΠΉΠ»Π΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΡ try-with-resources.
ΠΡΠΈΠΌΠ΅Ρ 2
ΠΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠ΅ΠΉ try-with-resources ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π½ΡΠ°Π½ΡΡ:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ²ΠΎΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΡΠ΅Π΄Π΅ Java. ΠΡΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡ Π²ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ:
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅:
ΠΠ°ΠΌ Π»ΠΈΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡ Exception Ρ ΡΠ΅Π»ΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°Π½Π½Π°Ρ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌ. Π‘Π»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ InsufficientFundsException ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΠΊΠ»Π°ΡΡ Exception, Π΄Π΅Π»Π°Ρ Π΅Π³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅ΠΌΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ»Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ Π²ΡΠ΅ΠΌ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ, ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ ΠΎΠ±Π»Π°ΡΡΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΡΠΈΠΌΠ΅Ρ
Π‘ ΡΠ΅Π»ΡΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ, ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠ»Π°ΡΡ Checking ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ withdraw(), Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠΉ InsufficientFundsException.
Π‘Π»Π΅Π΄ΡΡΡΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Bank Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² deposit() ΠΈ withdraw() ΠΊΠ»Π°ΡΡΠ° Checking.
Π‘ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠΉΡΠ΅ Π²ΡΠ΅ ΡΡΠΈ Π²ΡΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ ΡΠ°ΠΉΠ»Π° ΠΈ ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄ΠΈΡΠ΅ Π·Π°ΠΏΡΡΠΊ Bank. ΠΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ:
ΠΠ±ΡΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
Π Java ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄Π²Π΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΡΠΈΠ±ΠΎΠΊ.