1. ΠΠΈΠ΄ΠΈ Π²ΠΈΠ½ΡΡΠΊΡΠ²
Π£ΡΡ Π²ΠΈΠ½ΡΡΠΊΠΈ ΠΏΠΎΠ΄ΡΠ»ΡΡΡΡΡΡ Π½Π° 4 Π²ΠΈΠ΄ΠΈ, ΡΠΊΡ Π½Π°ΡΠΏΡΠ°Π²Π΄Ρ Ρ ΠΊΠ»Π°ΡΠ°ΠΌΠΈ, ΡΡΠΏΠ°Π΄ΠΊΠΎΠ²Π°Π½ΠΈΠΌΠΈ ΠΎΠ΄ΠΈΠ½ Π²ΡΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ.
ΠΠ»Π°Ρ Throwable
ΠΠΎΠ»ΠΎΠ²Π½ΠΈΠΌ Π±Π°Π·ΠΎΠ²ΠΈΠΌ ΠΊΠ»Π°ΡΠΎΠΌ Π΄Π»Ρ Π²ΡΡΡ
Π²ΠΈΠ½ΡΡΠΊΡΠ² Ρ ΠΊΠ»Π°Ρ Throwable
. Π£ ΠΊΠ»Π°ΡΡ Throwable
ΠΌΡΡΡΠΈΡΡΡΡ ΠΊΠΎΠ΄, ΡΠΊΠΈΠΉ Π·Π°ΠΏΠΈΡΡΡ Π² ΠΌΠ°ΡΠΈΠ² ΠΏΠΎΡΠΎΡΠ½Ρ ΡΡΠ°ΡΡ ΡΡΠ΅ΠΊΡ Π²ΠΈΠΊΠ»ΠΈΠΊΡΠ² ΡΡΠ½ΠΊΡΡΠΉ. Π©ΠΎ ΡΠ°ΠΊΠ΅ ΡΡΠ°ΡΠ° ΡΡΠ΅ΠΊΡ Π²ΠΈΠΊΠ»ΠΈΠΊΡΠ², ΠΌΠΈ Π΄ΡΠ·Π½Π°ΡΠΌΠΎΡΡ ΡΡΠΎΡ
ΠΈ Π·Π³ΠΎΠ΄ΠΎΠΌ.
Π ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ throw ΠΌΠΎΠΆΠ½Π° ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΠ»ΡΠΊΠΈ ΠΎΠ±'ΡΠΊΡ ΠΊΠ»Π°ΡΡ-ΡΠΏΠ°Π΄ΠΊΠΎΡΠΌΡΡ Throwable
. Π Ρ
ΠΎΡΠ° ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ½ΠΎ ΠΌΠΎΠΆΠ½Π° Π½Π°ΠΏΠΈΡΠ°ΡΠΈ ΠΊΠΎΠ΄ Π½Π° ΠΊΡΡΠ°Π»Ρ throw new Throwable();
β Π·Π°Π·Π²ΠΈΡΠ°ΠΉ ΡΠ°ΠΊ Π½ΡΡ
ΡΠΎ Π½Π΅ ΡΠΎΠ±ΠΈΡΡ. ΠΠΎΠ»ΠΎΠ²Π½Π° ΠΌΠ΅ΡΠ° ΡΡΠ½ΡΠ²Π°Π½Π½Ρ ΠΊΠ»Π°ΡΡ Throwable
ΠΏΠΎΠ»ΡΠ³Π°Ρ Π² ΡΠΎΠΌΡ, ΡΠΎ ΡΠ΅ ΡΠ΄ΠΈΠ½ΠΈΠΉ ΠΊΠ»Π°Ρ-ΠΏΡΠ΅Π΄ΠΎΠΊ Π΄Π»Ρ Π²ΡΡΡ
Π²ΠΈΠ½ΡΡΠΊΡΠ².
ΠΠ»Π°Ρ Error
ΠΠ°ΡΡΡΠΏΠ½ΠΈΠΌ ΠΊΠ»Π°ΡΠΎΠΌ Π²ΠΈΠ½ΡΡΠΊΡΠ² Ρ ΠΊΠ»Π°Ρ Error
β ΠΏΡΡΠΌΠΈΠΉ ΡΠΏΠ°Π΄ΠΊΠΎΡΠΌΠ΅ΡΡ ΠΊΠ»Π°ΡΡ Throwable
. ΠΠ±'ΡΠΊΡΠΈ ΡΠΈΠΏΡ Error
(Ρ ΠΉΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ²-ΡΠΏΠ°Π΄ΠΊΠΎΡΠΌΡΡΠ²) ΡΡΠ²ΠΎΡΡΡ Java-ΠΌΠ°ΡΠΈΠ½Π° Ρ ΡΠ°Π·Ρ Π²ΠΈΠ½ΠΈΠΊΠ½Π΅Π½Π½Ρ ΡΠ΅ΡΠΉΠΎΠ·Π½ΠΈΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΡΠΊ-ΠΎΡ: Π·Π±ΠΎΡ Π² ΡΠΎΠ±ΠΎΡΡ, Π±ΡΠ°ΠΊΡ ΠΏΠ°ΠΌ'ΡΡΡ ΡΠΎΡΠΎ.
ΠΠ°Π·Π²ΠΈΡΠ°ΠΉ Π²ΠΈ ΡΠΊ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΡΡ Π½ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·ΡΠΎΠ±ΠΈΡΠΈ Π² ΡΠΈΡΡΠ°ΡΡΡ, ΠΊΠΎΠ»ΠΈ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΡ Π²ΠΈΠ½ΠΈΠΊΠ»Π° ΠΏΠΎΠΌΠΈΠ»ΠΊΠ° ΡΠΈΠΏΡ Error
: Π²ΠΎΠ½Π° Π½Π°Π΄ΡΠΎ ΡΠ΅ΡΠΉΠΎΠ·Π½Π°. Π£ΡΠ΅, ΡΠΎ Π²ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π·ΡΠΎΠ±ΠΈΡΠΈ, β ΠΏΠΎΠ²ΡΠ΄ΠΎΠΌΠΈΡΠΈ ΠΊΠΎΡΠΈΡΡΡΠ²Π°ΡΡ, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ° Π°Π²Π°ΡΡΠΉΠ½ΠΎ Π·Π°Π²Π΅ΡΡΡΡΡΡΡΡ, Π°Π±ΠΎ Π·Π°ΠΏΠΈΡΠ°ΡΠΈ Π²ΡΡ Π²ΡΠ΄ΠΎΠΌΡ ΡΠ½ΡΠΎΡΠΌΠ°ΡΡΡ ΠΏΡΠΎ ΠΏΠΎΠΌΠΈΠ»ΠΊΡ Π² Π»ΠΎΠ³ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ.
ΠΠ»Π°Ρ Exception
ΠΠΈΠ½ΡΡΠΊΠΈ ΡΠΈΠΏΡ Exception
(Ρ RuntimeException
) β ΡΠ΅ Π·Π²ΠΈΡΠ°ΠΉΠ½Ρ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ, ΡΠΊΡ Π²ΠΈΠ½ΠΈΠΊΠ°ΡΡΡ ΠΏΡΠ΄ ΡΠ°Ρ ΡΠΎΠ±ΠΎΡΠΈ Π±Π°Π³Π°ΡΡΠΎΡ
ΠΌΠ΅ΡΠΎΠ΄ΡΠ². ΠΠ΅ΡΠ° ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Π²ΠΈΠΊΠΈΠ½ΡΡΠΎΠ³ΠΎ Π²ΠΈΠ½ΡΡΠΊΡ β Π±ΡΡΠΈ Π·Π°Ρ
ΠΎΠΏΠ»Π΅Π½ΠΈΠΌ ΡΠΈΠΌ Π±Π»ΠΎΠΊΠΎΠΌ catch
, ΡΠΊΠΈΠΉ Π·Π½Π°Ρ, ΡΠΎ ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π·ΡΠΎΠ±ΠΈΡΠΈ Π² ΡΡΠΉ ΡΠΈΡΡΠ°ΡΡΡ.
ΠΠΎΠ»ΠΈ ΡΠΊΠΈΠΉΡΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠΊΠΎΠ½Π°ΡΠΈ ΡΠ²ΠΎΡ ΡΠΎΠ±ΠΎΡΡ Π· ΡΠΊΠΎΡΡΡ ΠΏΡΠΈΡΠΈΠ½ΠΈ, Π²ΡΠ½ ΠΎΠ΄ΡΠ°Π·Ρ ΠΌΠ°Ρ ΠΏΠΎΠ²ΡΠ΄ΠΎΠΌΠΈΡΠΈ ΠΏΡΠΎ ΡΠ΅ ΡΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π·Π²ΡΠ΄ΠΊΠΈ Π²ΡΠ΄Π±ΡΠ²Π°ΡΡΡΡΡ Π²ΠΈΠΊΠ»ΠΈΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΈΠΊΠΈΠ΄Π°ΡΡΡΡΡ Π²ΠΈΠ½ΡΡΠΎΠΊ Π²ΡΠ΄ΠΏΠΎΠ²ΡΠ΄Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΡ.
ΠΠ½Π°ΠΊΡΠ΅ ΠΊΠ°ΠΆΡΡΠΈ, ΡΠΊΡΠΎ ΡΠΊΠ°ΡΡ Π·ΠΌΡΠ½Π½Π° Π²ΠΈΡΠ²ΠΈΠ»Π°ΡΡ ΡΡΠ²Π½ΠΎΡ null
, ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΈΠ½Π΅ NullPointerException
, ΡΠΊΡΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ΅ΡΠ΅Π΄Π°Π»ΠΈ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Ρ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ β ΠΊΠΈΠ½Π΅ InvalidArgumentException
, ΡΠΊΡΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄Ρ Π²ΠΈΠΏΠ°Π΄ΠΊΠΎΠ²ΠΎ Π²ΡΠ΄Π±ΡΠ»ΠΎΡΡ Π΄ΡΠ»Π΅Π½Π½Ρ Π½Π° Π½ΡΠ»Ρ β ArithmeticException
.
ΠΠ»Π°Ρ RuntimeException
RuntimeException
β ΡΠ΅ ΡΡΠ·Π½ΠΎΠ²ΠΈΠ΄ (ΠΏΡΠ΄ΠΌΠ½ΠΎΠΆΠΈΠ½Π°) Π²ΠΈΠ½ΡΡΠΊΡΠ² Exception
. ΠΠΎΠΆΠ½Π° Π½Π°Π²ΡΡΡ ΡΠΊΠ°Π·Π°ΡΠΈ, ΡΠΎ RuntimeException
β ΡΠ΅ ΠΏΠΎΠ»Π΅Π³ΡΠ΅Π½Π° Π²Π΅ΡΡΡΡ Π·Π²ΠΈΡΠ°ΠΉΠ½ΠΈΡ
Π²ΠΈΠ½ΡΡΠΊΡΠ² (Exception
): ΡΠΎΠ΄ΠΎ ΡΠ°ΠΊΠΈΡ
Π²ΠΈΠ½ΡΡΠΊΡΠ² Π·Π°ΡΡΠΎΡΠΎΠ²ΡΡΡΡΡΡ ΠΌΠ΅Π½ΡΠ΅ Π²ΠΈΠΌΠΎΠ³ Ρ ΠΎΠ±ΠΌΠ΅ΠΆΠ΅Π½Ρ.
ΠΡΠΎ ΡΡΠ·Π½ΠΈΡΡ ΠΌΡΠΆ Exception
Ρ RuntimeException
Π²ΠΈ Π΄ΡΠ·Π½Π°ΡΡΠ΅ΡΡ Π΄Π°Π»Ρ.
2. ΠΠΈΠ½ΡΡΠΊΠΈ, ΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΡΡΡΡ: throws
, checked exceptions
Π£ΡΡ Π²ΠΈΠ½ΡΡΠΊΠΈ Π² Java ΠΏΠΎΠ΄ΡΠ»ΡΡΡΡΡΡ Π½Π° 2 ΠΊΠ°ΡΠ΅Π³ΠΎΡΡΡ β Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΠΎ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΡΡΡΡ (checked), Ρ Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΡΡΡΡ (unchecked).
Π£ΡΡ Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΡΠΏΠ°Π΄ΠΊΠΎΠ²Π°Π½Ρ Π²ΡΠ΄ ΠΊΠ»Π°ΡΡΠ² RuntimeException
Ρ Error
, Π²Π²Π°ΠΆΠ°ΡΡΡΡΡ unchecked-Π²ΠΈΠ½ΡΡΠΊΠ°ΠΌΠΈ, ΡΡΡ ΡΠ½ΡΡ β checked-Π²ΠΈΠ½ΡΡΠΊΠ°ΠΌΠΈ.
Π§Π΅ΡΠ΅Π· 20 ΡΠΎΠΊΡΠ² ΠΏΡΡΠ»Ρ Π²Π²Π΅Π΄Π΅Π½Π½Ρ Π²ΠΈΠ½ΡΡΠΊΡΠ², ΡΠΊΡ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΡΡΡΡ, ΠΌΠ°ΠΉΠΆΠ΅ Π²ΡΡ Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΡΡΠΈ Π²Π²Π°ΠΆΠ°ΡΡΡ ΡΠ΅ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΎΡ. 95 % ΡΡΡΡ Π²ΠΈΠ½ΡΡΠΊΡΠ² Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΡ ΡΡΡΠ°ΡΠ½ΠΈΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°Ρ ΡΠ°ΠΊΡ, ΡΠΎ Π½Π΅ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΡΡΡΡ. Π£ ΡΡ ΡΠ°ΠΌΡ ΠΌΠΎΠ²Ρ C#, ΡΠΊΠ° ΡΠΊΠΎΠΏΡΡΠ²Π°Π»Π° Java ΠΌΠ°Π»ΠΎ Π½Π΅ ΠΏΠΎΠ²Π½ΡΡΡΡ, Π½Π΅ ΡΡΠ°Π»ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΡΠΈ checked-Π²ΠΈΠ½ΡΡΠΊΠΈ.
Π―ΠΊΠ° ΠΆ ΠΎΡΠ½ΠΎΠ²Π½Π° Π²ΡΠ΄ΠΌΡΠ½Π½ΡΡΡΡ ΠΌΡΠΆ checked-Π²ΠΈΠ½ΡΡΠΊΠ°ΠΌΠΈ ΠΉ unchecked-Π²ΠΈΠ½ΡΡΠΊΠ°ΠΌΠΈ?
ΠΠΎ checked-Π²ΠΈΠ½ΡΡΠΊΡΠ² Π²ΠΈΡΡΠ²Π°ΡΡΡΡΡ Π΄ΠΎΠ΄Π°ΡΠΊΠΎΠ²Ρ Π²ΠΈΠΌΠΎΠ³ΠΈ. ΠΠ²ΡΡΠ°ΡΡ Π²ΠΎΠ½ΠΈ ΠΏΡΠΈΠ±Π»ΠΈΠ·Π½ΠΎ ΡΠ°ΠΊ.
ΠΠΈΠΌΠΎΠ³Π° 1
Π―ΠΊΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π²ΠΈΠΊΠΈΠ΄Π°Ρ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ, Π²ΡΠ½ ΠΌΠ°Ρ ΠΌΡΡΡΠΈΡΠΈ ΡΠΈΠΏ ΡΡΠΎΠ³ΠΎ Π²ΠΈΠ½ΡΡΠΊΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΡ (ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ). Π¦Π΅ Π½Π΅ΠΎΠ±Ρ ΡΠ΄Π½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ. ΡΠΎΠ± ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΡΠΊΡ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΡΡ ΡΠ΅ΠΉ ΠΌΠ΅ΡΠΎΠ΄, Π·Π½Π°Π»ΠΈ ΠΏΡΠΎ ΡΠ΅, ΡΠΎ Π² Π½ΡΠΎΠΌΡ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠ½ΠΈΠΊΠ½ΡΡΠΈ ΡΠ°ΠΊΠΈΠΉ Β«Π²Π°ΠΆΠ»ΠΈΠ²ΠΈΠΉ Π²ΠΈΠ½ΡΡΠΎΠΊΒ».
Π£ΠΊΠ°Π·ΡΠ²Π°ΡΠΈ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ ΠΏΠΎΡΡΡΠ±Π½ΠΎ ΠΏΡΡΠ»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠ² ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠ»ΡΠ΄ΠΎΠΌ Π·Π° ΠΊΠ»ΡΡΠΎΠ²ΠΈΠΌ ΡΠ»ΠΎΠ²ΠΎΠΌ throws
(Π½Π΅ ΠΏΠ»ΡΡΠ°ΡΠΈ Π·Ρ throw
). ΠΡΠ°ΠΊΠΈΠΉ Π²ΠΈΠ³Π»ΡΠ΄ ΡΠ΅ ΠΌΠ°Ρ:
ΡΠΈΠΏ ΠΌΠ΅ΡΠΎΠ΄ (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ) throws Π²ΠΈΠ½ΡΡΠΎΠΊ
ΠΡΠΈΠΊΠ»Π°Π΄:
checked-Π²ΠΈΠ½ΡΡΠΎΠΊ | unchecked-Π²ΠΈΠ½ΡΡΠΎΠΊ |
---|---|
|
|
Π£ ΠΏΡΠΈΠΊΠ»Π°Π΄Ρ ΠΏΡΠ°Π²ΠΎΡΡΡ Π½Π°Ρ ΠΊΠΎΠ΄ ΠΊΠΈΠ΄Π°Ρ unchecked-Π²ΠΈΠ½ΡΡΠΎΠΊ β ΠΆΠΎΠ΄Π½ΠΎΡ Π΄ΠΎΠ΄Π°ΡΠΊΠΎΠ²ΠΎΡ Π΄ΡΡ Π½Π΅ ΠΏΠΎΡΡΡΠ±Π½ΠΎ. Π£ ΠΏΡΠΈΠΊΠ»Π°Π΄Ρ Π»ΡΠ²ΠΎΡΡΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΈΠ΄Π°Ρ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ, ΡΠΎΠΌΡ Π² ΡΠΈΠ³Π½Π°ΡΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Π΄ΠΎΠ΄Π°Π»ΠΈ ΠΊΠ»ΡΡΠΎΠ²Π΅ ΡΠ»ΠΎΠ²ΠΎ throws
Ρ Π²ΠΊΠ°Π·Π°Π»ΠΈ ΡΠΈΠΏ Π²ΠΈΠ½ΡΡΠΊΡ.
Π―ΠΊΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΠ»Π°Π½ΡΡ Π²ΠΈΠΊΠΈΠ΄Π°ΡΠΈ ΠΊΡΠ»ΡΠΊΠ° checked-Π²ΠΈΠ½ΡΡΠΊΡΠ², ΡΡ
ΡΡΡΡ
ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π²ΠΊΠ°Π·Π°ΡΠΈ ΠΏΡΡΠ»Ρ ΠΊΠ»ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π° throws
ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΡ. ΠΠΎΡΡΠ΄ΠΎΠΊ Π½Π΅Π²Π°ΠΆΠ»ΠΈΠ²ΠΈΠΉ. ΠΡΠΈΠΊΠ»Π°Π΄:
public void calculate(int n) throws Exception, IOException
{
if (n == 0)
throw new Exception("n Π΄ΠΎΡΡΠ²Π½ΡΡ Π½ΡΠ»Ρ!");
if (n == 1)
throw new IOException("n Π΄ΠΎΡΡΠ²Π½ΡΡ ΠΎΠ΄ΠΈΠ½ΠΈΡΡ");
}
ΠΠΈΠΌΠΎΠ³Π° 2
Π―ΠΊΡΠΎ Π²ΠΈ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄, Ρ ΡΠΈΠ³Π½Π°ΡΡΡΡ ΡΠΊΠΎΠ³ΠΎ ΠΏΡΠΎΠΏΠΈΡΠ°Π½ΠΎ checked-Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΠΎ Π½Π΅ΠΌΠΎΠΆΠ»ΠΈΠ²ΠΎ ΠΏΡΠΎΡΠ³Π½ΠΎΡΡΠ²Π°ΡΠΈ ΡΠ΅ΠΉ ΡΠ°ΠΊΡ.
ΠΠΈ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ Π°Π±ΠΎ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠΏΠΈΡΠΈ Π²ΡΡ ΡΡ Π²ΠΈΠ½ΡΡΠΊΠΈ, Π΄ΠΎΠ΄Π°Π²ΡΠΈ Π±Π»ΠΎΠΊΠΈ catch
Π΄Π»Ρ ΠΊΠΎΠΆΠ½ΠΎΠ³ΠΎ Π· Π½ΠΈΡ
, Π°Π±ΠΎ Π΄ΠΎΠ΄Π°ΡΠΈ ΡΡ
Ρ throws
ΡΠ²ΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ.
ΠΠΈ Π½Π΅ΠΌΠΎΠ²Π±ΠΈ Π³ΠΎΠ²ΠΎΡΠΈΠΌΠΎ ΡΠΎΠ±Ρ: ΡΡ Π²ΠΈΠ½ΡΡΠΊΠΈ Π½Π°ΡΡΡΠ»ΡΠΊΠΈ Π²Π°ΠΆΠ»ΠΈΠ²Ρ, ΡΠΎ ΠΌΠΈ ΠΎΠ±ΠΎΠ²'ΡΠ·ΠΊΠΎΠ²ΠΎ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠΏΠΈΡΠΈ. Π ΡΠΊΡΠΎ ΠΌΠΈ Π½Π΅ Π·Π½Π°ΡΠΌΠΎ, ΡΠΊ ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠΏΠΈΡΠΈ, ΠΌΠΈ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ ΠΏΠΎΠ²ΡΠ΄ΠΎΠΌΠΈΡΠΈ ΡΠΈΠΌ, Ρ ΡΠΎ Π±ΡΠ΄Π΅ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΠΈ Π½Π°Ρ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΎ Π² Π½ΡΠΎΠΌΡ ΠΌΠΎΠΆΡΡΡ Π²ΠΈΠ½ΠΈΠΊΠ½ΡΡΠΈ ΡΠ°ΠΊΡ Π²ΠΈΠ½ΡΡΠΊΠΈ.
ΠΡΠΈΠΊΠ»Π°Π΄:
Π£ΡΠ²ΡΠΌΠΎ, ΡΠΎ ΠΌΠΈ ΠΏΠΈΡΠ΅ΠΌΠΎ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΊΠΈΠΉ ΠΌΠ°Ρ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΡΠ²ΡΡ, Π½Π°ΡΠ΅Π»Π΅Π½ΠΈΠΉ Π»ΡΠ΄ΡΠΌΠΈ. ΠΠΎΡΠ°ΡΠΊΠΎΠ²Π° ΠΊΡΠ»ΡΠΊΡΡΡΡ Π»ΡΠ΄Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡΡ ΡΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ. Π’ΠΎΠ΄Ρ ΠΌΠΈ ΠΏΠΎΠ²ΠΈΠ½Π½Ρ Π΄ΠΎΠ΄Π°ΡΠΈ Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΠΊΡΠΎ Π»ΡΠ΄Π΅ΠΉ Π½Π°Π΄ΡΠΎ ΠΌΠ°Π»ΠΎ.
Π‘ΡΠ²ΠΎΡΡΡΠΌΠΎ ΠΠ΅ΠΌΠ»Ρ | ΠΡΠΈΠΌΡΡΠΊΠ° |
---|---|
|
ΠΠ΅ΡΠΎΠ΄ ΠΏΠΎΡΠ΅Π½ΡΡΠΉΠ½ΠΎ ΠΊΠΈΠ΄Π°Ρ Π΄Π²Π° checked-Π²ΠΈΠ½ΡΡΠΊΠΈ:
|
ΠΠΈΠΊΠ»ΠΈΠΊ ΡΡΠΎΠ³ΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠΎΠΆΠ½Π° ΠΎΠ±ΡΠΎΠ±ΠΈΡΠΈ ΡΡΡΠΎΠΌΠ° ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
1. ΠΠ΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠΏΠ»ΡΡΠΌΠΎ Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΠΎ Π²ΠΈΠ½ΠΈΠΊΠ°ΡΡΡ
ΠΠ°ΠΉΡΠ°ΡΡΡΡΠ΅ ΡΠ°ΠΊ Π΄ΡΡΡΡ ΡΠΎΠ΄Ρ, ΠΊΠΎΠ»ΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅Π²ΡΠ΄ΠΎΠΌΠΎ, ΡΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠΎΠ±ΠΈΡΠΈ ΡΡ ΡΠΈΡΡΠ°ΡΡΡ.
ΠΠΎΠ΄ | ΠΡΠΈΠΌΡΡΠΊΠ° |
---|---|
|
ΠΠ΅ΡΠΎΠ΄, Π·Π²ΡΠ΄ΠΊΠΈ Π·Π΄ΡΠΉΡΠ½ΡΡΡΡΡΡ Π²ΠΈΠΊΠ»ΠΈΠΊ, Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠΏΠ»ΡΡ Π²ΠΈΠ½ΡΡΠΊΠΈ ΡΠ° Π·ΠΌΡΡΠ΅Π½ΠΈΠΉ ΡΠ½ΡΠΎΡΠΌΡΠ²Π°ΡΠΈ ΠΏΡΠΎ Π½ΠΈΡ
ΡΠ½ΡΠΈΡ
: Π΄ΠΎΠ΄Π°ΡΠΈ ΡΡ
ΡΠΎΠ±Ρ Ρ throws |
2. ΠΠ΅ΡΠ΅Ρ ΠΎΠΏΠ»ΡΡΠΌΠΎ ΡΠ°ΡΡΠΈΠ½Ρ Π²ΠΈΠ½ΡΡΠΊΡΠ²
ΠΠ±ΡΠΎΠ±Π»ΡΡΠΌΠΎ Π·ΡΠΎΠ·ΡΠΌΡΠ»Ρ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ, Π½Π΅Π·ΡΠΎΠ·ΡΠΌΡΠ»Ρ β ΠΊΠΈΠ΄Π°ΡΠΌΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄, Π·Π²ΡΠ΄ΠΊΠΈ Π²ΡΠ΄Π±ΡΠ²ΡΡ Π²ΠΈΠΊΠ»ΠΈΠΊ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΡΡΡΠ±Π½ΠΎ Π΄ΠΎΠ΄Π°ΡΠΈ ΡΡ Π½Ρ Π½Π°Π·Π²ΠΈ Π² throws:
ΠΠΎΠ΄ | ΠΡΠΈΠΌΡΡΠΊΠ° |
---|---|
|
ΠΠ΅ΡΠΎΠ΄, Π·Π²ΡΠ΄ΠΊΠΈ Π·Π΄ΡΠΉΡΠ½ΡΡΡΡΡΡ Π²ΠΈΠΊΠ»ΠΈΠΊ, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠΏΠ»ΡΡ Π»ΠΈΡΠ΅ ΠΎΠ΄ΠΈΠ½ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ β ΠΠ΄ΠΈΠ½ΠΎΠΊΠΈΠΉΠ‘Π²ΡΡ , Π΄ΡΡΠ³ΠΈΠΉ Π²ΡΠ½ ΠΌΠ°Ρ Π΄ΠΎΠ΄Π°ΡΠΈ Ρ ΡΠ²ΠΎΡ ΡΠΈΠ³Π½Π°ΡΡΡΡ: Π²ΠΊΠ°Π·Π°ΡΠΈ ΠΏΡΡΠ»Ρ ΡΠ»ΠΎΠ²Π° throws |
3. ΠΠ΅ΡΠ΅Ρ ΠΎΠΏΠ»ΡΡΠΌΠΎ Π²ΡΡ Π²ΠΈΠ½ΡΡΠΊΠΈ
Π―ΠΊΡΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ ΠΊΠΈΠ΄Π°Ρ Π²ΠΈΠ½ΡΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ, Π·Π²ΡΠ΄ΠΊΠΈ Π·Π΄ΡΠΉΡΠ½ΡΡΡΡΡΡ Π²ΠΈΠΊΠ»ΠΈΠΊ, ΡΠΎ ΠΎΡΡΠ°Π½Π½ΡΠΉ Π·Π°Π²ΠΆΠ΄ΠΈ Π±ΡΠ΄Π΅ Π²ΠΏΠ΅Π²Π½Π΅Π½ΠΈΠΉ, ΡΠΎ Π²ΡΠ΅ Π±ΡΠ»ΠΎ Π²ΠΈΠΊΠΎΠ½Π°Π½ΠΎ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎ. Π Π½Π΅ Π·ΠΌΠΎΠΆΠ΅ Π²ΠΆΠΈΡΠΈ Π½ΡΡΠΊΠΈΡ Π·Π°Ρ ΠΎΠ΄ΡΠ², ΡΠΎΠ± Π²ΠΈΠΏΡΠ°Π²ΠΈΡΠΈ ΡΠΈΡΡΠ°ΡΡΡ.
ΠΠΎΠ΄ | ΠΡΠΈΠΌΡΡΠΊΠ° |
---|---|
|
Π£ ΡΡΠΎΠΌΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠΏΠ»ΡΡΡΡΡΡ Π²ΡΡ ΠΏΠΎΠΌΠΈΠ»ΠΊΠΈ. ΠΠ΅ΡΠΎΠ΄, Π·Π²ΡΠ΄ΠΊΠΈ Π²ΡΠ΄Π±ΡΠ²Π°ΡΡΡΡΡ Π²ΠΈΠΊΠ»ΠΈΠΊ, Π±ΡΠ΄Π΅ Π²ΠΏΠ΅Π²Π½Π΅Π½ΠΈΠΉ, ΡΠΎ Π²ΡΠ΅ ΠΏΡΠΎΠΉΡΠ»ΠΎ ΡΡΠ΄ΠΎΠ²ΠΎ. |
3. ΠΠ±Π³ΠΎΡΡΠ°Π½Π½Ρ Π²ΠΈΠ½ΡΡΠΊΡΠ²
Checked-Π²ΠΈΠ½ΡΡΠΊΠΈ Π·Π΄Π°Π²Π°Π»ΠΈΡΡ ΠΊΠ»Π°ΡΠ½ΠΎΡ ΡΡΡΡΡ Π² ΡΠ΅ΠΎΡΡΡ ΡΠ° Π²ΠΈΡΠ²ΠΈΠ»ΠΈΡΡ ΠΏΠΎΠ²Π½ΠΈΠΌ ΡΠΎΠ·ΡΠ°ΡΡΠ²Π°Π½Π½ΡΠΌ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΡΡ.
ΠΡΠΈΠΏΡΡΡΡΠΌΠΎ, Ρ Π²Π°ΡΠΎΠΌΡ ΠΏΡΠΎΡΠΊΡΡ Ρ ΡΡΠΏΠ΅ΡΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄, ΡΠΊΠΈΠΉ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΡΡΡΡ ΡΠ· ΡΠΎΡΠ΅Π½Ρ ΠΌΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ. Π Π²ΠΈ Π²ΠΈΡΡΡΠΈΠ»ΠΈ Π΄ΠΎΠ΄Π°ΡΠΈ Π² Π½ΡΠΎΠ³ΠΎ Π½ΠΎΠ²ΠΈΠΉ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ. Π ΡΠΎΠ΄Ρ ΠΌΠΎΠΆΠ΅ Π²ΠΈΡΠ²ΠΈΡΠΈΡΡ, ΡΠΎ ΡΠ΅ΠΉ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ ΡΠΏΡΠ°Π²Π΄Ρ ΡΠ°ΠΊΠΈΠΉ Π²Π°ΠΆΠ»ΠΈΠ²ΠΈΠΉ ΡΠ° ΠΎΡΠΎΠ±Π»ΠΈΠ²ΠΈΠΉ, ΡΠΎ ΡΡΠ»ΡΠΊΠΈ ΠΌΠ΅ΡΠΎΠ΄ main()
Π·Π½Π°Ρ, ΡΠΎ ΡΠΎΠ±ΠΈΡΠΈ Ρ ΡΠ°Π·Ρ Π·Π°Ρ
ΠΎΠΏΠ»Π΅Π½Π½Ρ ΡΡΠΎΠ³ΠΎ Π²ΠΈΠ½ΡΡΠΊΡ.
ΠΡΠΎΠΆ Π²Π°ΠΌ Π΄ΠΎΠ²Π΅Π΄Π΅ΡΡΡΡ Π΄ΠΎΠ΄Π°ΡΠΈ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ Ρ throws
ΡΡΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΡΠ², ΡΠΊΡ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΡΡ Π²Π°Ρ ΡΡΠΏΠ΅ΡΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΈΠΉ ΠΌΠ΅ΡΠΎΠ΄. Π ΡΠ°ΠΊΠΎΠΆ Ρ throws
ΡΡΡΡ
ΠΌΠ΅ΡΠΎΠ΄ΡΠ², ΡΠΊΡ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΡΡ ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ. Π Π² ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΡΠΊΡ Π²ΠΈΠΊΠ»ΠΈΠΊΠ°ΡΡΡ ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΈ.
Π£ ΠΏΡΠ΄ΡΡΠΌΠΊΡ Π΄ΠΎ throws
ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΡΠ² ΠΏΡΠΎΡΠΊΡΡ Π±ΡΠ΄Π΅ Π΄ΠΎΠ΄Π°Π½ΠΎ Π½ΠΎΠ²ΠΈΠΉ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ. Π ΠΏΠΎΡΡΠΌ Π²ΠΈΡΠ²ΠΈΡΡΡΡ, ΡΠΎ Π²Π°Ρ ΠΏΡΠΎΡΠΊΡ ΠΏΠΎΠΊΡΠΈΡΠΈΠΉ ΡΠ΅ΡΡΠ°ΠΌΠΈ, Ρ ΡΠ΅ΡΡΠΈ Π½Π΅ ΠΊΠΎΠΌΠΏΡΠ»ΡΡΡΡΡΡ. Π Π²Π°ΠΌ Π΄ΠΎΠ²Π΅Π΄Π΅ΡΡΡΡ Π²ΠΈΠΏΡΠ°Π²Π»ΡΡΠΈ throws ΡΠ΅ ΠΉ Ρ ΡΠ΅ΡΡΠ°Ρ
.
Π Π²ΡΠ΄ΡΠ°ΠΊ ΡΠ²Π΅ΡΡ Π²Π°Ρ ΠΊΠΎΠ΄ (Π·ΠΌΡΠ½ΠΈ Π² ΡΠΎΡΠ½ΡΡ ΡΠ°ΠΉΠ»ΡΠ²) Π΄ΠΎΠ²Π΅Π΄Π΅ΡΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΡΡΡΡΠΈ ΡΠ½ΡΠΈΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΡΡΠ°ΠΌ. Π ΡΡΡ ΠΌΠΈ Π·Π°ΠΏΠΈΡΡΡΠΌΠΎ ΡΠ΅Π±Π΅: Π° Π·Π°Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΠΌΠΈ Π²Π½ΠΎΡΠΈΠ»ΠΈ Π² ΠΏΡΠΎΡΠΊΡ Π΄ΠΎΡ ΡΡΠ½Π°Π»ΡΠΉΠΎΠ½ Π·ΠΌΡΠ½? ΠΠ΅Π½Ρ (Π΄Π½Ρ?) ΡΠΎΠ±ΠΎΡΠΈ, Π·Π»Π°ΠΌΠ°Π½Ρ ΡΠ΅ΡΡΠΈ, Ρ Π²ΡΠ΅ Π·Π°ΡΠ°Π΄ΠΈ Π΄ΠΎΠ΄Π°Π½Π½Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ checked-Π²ΠΈΠ½ΡΡΠΊΡ?
Π ΡΠ΅ ΠΆ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ Π· ΡΡΠΏΠ°Π΄ΠΊΡΠ²Π°Π½Π½ΡΠΌ Ρ ΠΏΠ΅ΡΠ΅Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Π½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΡΠ². ΠΡΠΎΠ±Π»Π΅ΠΌ Π²ΡΠ΄ checked-Π²ΠΈΠ½ΡΡΠΊΡΠ² Π½Π°Π±Π°Π³Π°ΡΠΎ Π±ΡΠ»ΡΡΠ΅, Π½ΡΠΆ ΠΊΠΎΡΠΈΡΡΡ. ΠΠ°Π³Π°Π»ΠΎΠΌ Π·Π°ΡΠ°Π· ΠΌΠ°Π»ΠΎ Ρ ΡΠΎ ΡΡ Π»ΡΠ±ΠΈΡΡ Ρ ΠΌΠ°Π»ΠΎ Ρ ΡΠΎ Π²ΠΈΠΊΠΎΡΠΈΡΡΠΎΠ²ΡΡ.
ΠΠ΄Π½Π°ΠΊ Π²ΡΠ΅ ΡΠ΅ Π±Π°Π³Π°ΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Ρ (Π·ΠΎΠΊΡΠ΅ΠΌΠ°, ΠΊΠΎΠ΄ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡ Π±ΡΠ±Π»ΡΠΎΡΠ΅ΠΊ Java) ΠΌΡΡΡΠΈΡΡ ΡΡ ΡΠ°ΠΌΡchecked-Π²ΠΈΠ½ΡΡΠΊΠΈ. Π ΡΠΎ Π· Π½ΠΈΠΌΠΈ ΡΠΎΠ±ΠΈΡΠΈ? ΠΠ³Π½ΠΎΡΡΠ²Π°ΡΠΈ Π½Π΅ ΠΌΠΎΠΆΠ½Π°, ΠΎΠ±ΡΠΎΠ±Π»ΡΡΠΈ β Π½Π΅Π²ΡΠ΄ΠΎΠΌΠΎ ΡΠΊ.
Java-ΠΏΡΠΎΠ³ΡΠ°ΠΌΡΡΡΠΈ Π·Π°ΠΏΡΠΎΠΏΠΎΠ½ΡΠ²Π°Π»ΠΈ Β«Π·Π°Π³ΠΎΡΡΠ°ΡΠΈΒ» checked-Π²ΠΈΠ½ΡΡΠΊΠΈ Π²ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ RuntimeException
. ΠΠ½Π°ΠΊΡΠ΅ ΠΊΠ°ΠΆΡΡΠΈ, ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠΏΠ»ΡΠ²Π°ΡΠΈ Π²ΡΡ checked-Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΡΠ²ΠΎΡΡΠ²Π°ΡΠΈ Π·Π°ΠΌΡΡΡΡ Π½ΠΈΡ
unchecked-Π²ΠΈΠ½ΡΡΠΊΠΈ (Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, RuntimeException
) Ρ Π²ΠΈΠΊΠΈΠ΄Π°ΡΠΈ Π²ΠΆΠ΅ ΡΡ
. ΠΡΠ°ΠΊΠΈΠΉ Π²ΠΈΠ³Π»ΡΠ΄ ΡΠ΅ ΠΌΠ°Ρ:
try
{
ΠΊΠΎΠ΄, Π΄Π΅ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠ½ΠΈΠΊΠ½ΡΡΠΈ checked-Π²ΠΈΠ½ΡΡΠΎΠΊ
}
catch(Exception exp)
{
throw new RuntimeException(exp);
}
ΠΠ΅ Π΄ΡΠΆΠ΅ ΠΊΡΠ°ΡΠΈΠ²Π΅ ΡΡΡΠ΅Π½Π½Ρ, Π°Π»Π΅ Π½ΡΡΠΎΠ³ΠΎ ΠΊΡΠΈΠΌΡΠ½Π°Π»ΡΠ½ΠΎΠ³ΠΎ: Π²ΠΈΠ½ΡΡΠΎΠΊ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΊΠ»Π°Π»ΠΈ Π²ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ Π²ΠΈΠ½ΡΡΠΊΡ RuntimeException
.
ΠΠΎΠ»ΠΈ Ρ Π±Π°ΠΆΠ°Π½Π½Ρ, ΠΉΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½Π° Π·Π²ΡΠ΄ΡΠΈ Π»Π΅Π³ΠΊΠΎ Π΄ΡΡΡΠ°ΡΠΈ. ΠΡΠΈΠΊΠ»Π°Π΄:
ΠΠΎΠ΄ | ΠΡΠΈΠΌΡΡΠΊΠ° |
---|---|
|
ΠΡΡΠΈΠΌΡΡΠΌΠΎ Π²ΠΈΠ½ΡΡΠΎΠΊ, Π·Π±Π΅ΡΠ΅ΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΅ΡΠ΅Π΄ΠΈΠ½Ρ ΠΎΠ±'ΡΠΊΡΠ° RuntimeException ; cause ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ null ΠΠΈΠ·Π½Π°ΡΠ°ΡΠΌΠΎ ΠΉΠΎΠ³ΠΎ ΡΠΈΠΏ Ρ ΠΏΠ΅ΡΠ΅ΡΠ²ΠΎΡΡΡΠΌΠΎ Π½Π° Π·ΠΌΡΠ½Π½Ρ checked-ΡΠΈΠΏΡ. |
4. ΠΠ½ΠΎΠΆΠΈΠ½Π½Π΅ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠΏΠ»Π΅Π½Π½Ρ Π²ΠΈΠ½ΡΡΠΊΡΠ²
ΠΡΠΎΠ³ΡΠ°ΠΌΡΡΡΠΈ Π΄ΡΠΆΠ΅ Π½Π΅ Π»ΡΠ±Π»ΡΡΡ Π΄ΡΠ±Π»ΡΠ²Π°Π½Π½Ρ ΠΊΠΎΠ΄Ρ. ΠΠ°Π²ΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π»ΠΈ ΡΠ°ΠΊΠΈΠΉ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠΎΠ·ΡΠΎΠ±ΠΊΠΈ β DRY: Donβt Repeat Yourself. ΠΡΠΎΡΠ΅ ΠΏΡΠ΄ ΡΠ°Ρ ΠΎΠ±ΡΠΎΠ±ΠΊΠΈ Π²ΠΈΠ½ΡΡΠΊΡΠ² ΡΠ°ΡΡΠΎ Π²ΠΈΠ½ΠΈΠΊΠ°ΡΡΡ ΡΠΈΡΡΠ°ΡΡΡ, ΠΊΠΎΠ»ΠΈ ΠΏΡΡΠ»Ρ Π±Π»ΠΎΠΊΠ° try
ΡΠ΄ΡΡΡ ΠΊΡΠ»ΡΠΊΠ° Π±Π»ΠΎΠΊΡΠ² catch
Π· ΠΎΠ΄Π½Π°ΠΊΠΎΠ²ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.
ΠΠ±ΠΎ ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, 3 catch
-Π±Π»ΠΎΠΊΠΈ Π· ΠΎΠ΄Π½ΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Ρ ΡΠ΅ 2 catch
-Π±Π»ΠΎΠΊΠΈ Π· ΡΠ½ΡΠΈΠΌ. ΠΠ°Π³Π°Π»ΠΎΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π° ΡΠΈΡΡΠ°ΡΡΡ, ΠΊΠΎΠ»ΠΈ Ρ Π²Π°ΡΠΎΠΌΡ ΠΏΡΠΎΡΠΊΡΡ Π²ΡΠ΄ΠΏΠΎΠ²ΡΠ΄Π°Π»ΡΠ½ΠΎ ΡΡΠ°Π²Π»ΡΡΡΡΡ Π΄ΠΎ ΠΎΠ±ΡΠΎΠ±ΠΊΠΈ Π²ΠΈΠ½ΡΡΠΊΡΠ².
ΠΠΎΡΠΈΠ½Π°ΡΡΠΈ Π· 7-Ρ Π²Π΅ΡΡΡΡ Π² ΠΌΠΎΠ²Ρ Java Π΄ΠΎΠ΄Π°Π»ΠΈ ΠΌΠΎΠΆΠ»ΠΈΠ²ΡΡΡΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΠΈ ΠΊΡΠ»ΡΠΊΠ° ΡΠΈΠΏΡΠ² Π²ΠΈΠ½ΡΡΠΊΡΠ² Π² ΠΎΠ΄Π½ΠΎΠΌΡ Π±Π»ΠΎΡΡ catch
. ΠΡΠ°ΠΊΠΈΠΉ Π²ΠΈΠ³Π»ΡΠ΄ ΡΠ΅ ΠΌΠ°Ρ:
try
{
ΠΊΠΎΠ΄, Π΄Π΅ ΠΌΠΎΠΆΠ΅ Π²ΠΈΠ½ΠΈΠΊΠ½ΡΡΠΈ ΠΏΠΎΠΌΠΈΠ»ΠΊΠ°
}
catch(Π’ΠΈΠΏΠΠΈΠ½ΡΡΠΊΡ1 | Π’ΠΈΠΏΠΠΈΠ½ΡΡΠΊΡ2 | Π’ΠΈΠΏΠΠΈΠ½ΡΡΠΊΡ3 ΡΠΌ'Ρ)
{
ΠΊΠΎΠ΄ ΠΎΠ±ΡΠΎΠ±ΠΊΠΈ Π²ΠΈΠ½ΡΡΠΊΡΠ²
}
ΠΠ»ΠΎΠΊΡΠ² catch
ΠΌΠΎΠΆΠ΅ Π±ΡΡΠΈ ΡΠΊΡΠ»ΡΠΊΠΈ Π·Π°Π²Π³ΠΎΠ΄Π½ΠΎ. ΠΠ΄Π½Π°ΠΊ Π² ΠΎΠ΄Π½ΠΎΠΌΡ Π±Π»ΠΎΡΡ catch
Π½Π΅ ΠΌΠΎΠΆΠ½Π° Π²ΠΊΠ°Π·ΡΠ²Π°ΡΠΈ Π²ΠΈΠ½ΡΡΠΊΠΈ, ΡΠΊΡ ΡΡΠΏΠ°Π΄ΠΊΠΎΠ²ΡΡΡΡΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΡΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ. Π’ΠΎΠ±ΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ½Π° Π½Π°ΠΏΠΈΡΠ°ΡΠΈ catch (Exception
| RuntimeException
e), ΠΎΡΠΊΡΠ»ΡΠΊΠΈ ΠΊΠ»Π°Ρ RuntimeException
ΡΡΠΏΠ°Π΄ΠΊΠΎΠ²Π°Π½ΠΎ Π²ΡΠ΄ Exception
.
5. ΠΠ»Π°ΡΠ½Ρ Π²ΠΈΠ½ΡΡΠΊΠΈ
ΠΠΈ Π·Π°Π²ΠΆΠ΄ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠ²ΠΎΡΠΈΡΠΈ ΡΠ²ΡΠΉ Π²Π»Π°ΡΠ½ΠΈΠΉ ΠΊΠ»Π°Ρ-Π²ΠΈΠ½ΡΡΠΎΠΊ, ΠΏΡΠΎΡΡΠΎ ΡΡΠΏΠ°Π΄ΠΊΡΠ²Π°Π²ΡΠΈ ΠΊΠ»Π°Ρ, Π½Π°ΠΏΡΠΈΠΊΠ»Π°Π΄, Π²ΡΠ΄ RuntimeException
. ΠΡΠ°ΠΊΠΈΠΉ ΠΏΡΠΈΠ±Π»ΠΈΠ·Π½ΠΎ Π²ΠΈΠ³Π»ΡΠ΄ ΡΠ΅ ΠΌΠ°ΡΠΈΠΌΠ΅:
class ΠΠΌ'ΡΠΠ»Π°ΡΡ extends RuntimeException
{
}
ΠΠ΅ΡΠ°Π»Ρ ΠΌΠΈ ΠΎΠ±Π³ΠΎΠ²ΠΎΡΠΈΠΌΠΎ, ΠΊΠΎΠ»ΠΈ Π²ΠΈ Π²ΠΈΠ²ΡΠΈΡΠ΅ ΠΠΠ, ΡΡΠΏΠ°Π΄ΠΊΡΠ²Π°Π½Π½Ρ, ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΈ ΠΉ ΠΏΠ΅ΡΠ΅Π²ΠΈΠ·Π½Π°ΡΠ΅Π½Π½Ρ ΠΌΠ΅ΡΠΎΠ΄ΡΠ².
ΠΠ°ΡΠΎΠΌΡΡΡΡ, Π½Π°Π²ΡΡΡ ΡΠΊΡΠΎ Ρ Π²Π°Ρ Ρ ΡΡΠ»ΡΠΊΠΈ ΡΠ°ΠΊΠΈΠΉ ΠΏΡΠΎΡΡΠΈΠΉ ΠΊΠ»Π°Ρ β ΡΠ·Π°Π³Π°Π»Ρ Π±Π΅Π· ΠΊΠΎΠ΄Ρ, Π²ΠΈ Π²ΡΠ΅ ΠΎΠ΄Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΠΈΠΊΠΈΠ΄Π°ΡΠΈ ΠΉΠΎΠ³ΠΎ Π²ΠΈΠ½ΡΡΠΊΠΈ:
ΠΠΎΠ΄ | ΠΡΠΈΠΌΡΡΠΊΠ° |
---|---|
|
ΠΠΈΠΊΠΈΠ΄Π°ΡΠΌΠΎ unchecked-Π²ΠΈΠ½ΡΡΠΎΠΊ MyException . |
ΠΠ΅ΡΠ°Π»ΡΠ½Ρ ΡΠΎΠ±ΠΎΡΡ ΡΠ· Π²Π»Π°ΡΠ½ΠΈΠΌΠΈ Π²ΠΈΠ½ΡΡΠΊΠ°ΠΌΠΈ ΠΌΠΈ ΡΠΎΠ·Π³Π»ΡΠ½Π΅ΠΌΠΎ Ρ ΠΊΠ²Π΅ΡΡΡ Java Multithreading.