java exception код ошибки

Π˜ΡΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ 7 распространСнных ошибок ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java

ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ являСтся ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных, Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· самых простых Π·Π°Π΄Π°Ρ‡. Π­Ρ‚ΠΎ всС Π΅Ρ‰Π΅ ΠΎΠ΄Π½Π° ΠΈΠ· часто обсуТдаСмых Ρ‚Π΅ΠΌ Π² ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, ΠΈ Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΈ распространСнных ошибок, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ.

Π’ΠΎΡ‚ нСсколько Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ слСдуСт ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² вашСм ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Ошибка 1: объявлСниС java.lang.Exception или java.lang.Throwable

Как Π²Ρ‹ ΡƒΠΆΠ΅ Π·Π½Π°Π΅Ρ‚Π΅, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚ΡŒ, Π»ΠΈΠ±ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ провСряСмоС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Но провСряСмыС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ β€” это Π½Π΅ СдинствСнныС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой подкласс java.lang.Throwable Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ throws. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, вмСсто указания Π΄Π²ΡƒΡ… Ρ€Π°Π·Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ выбрасываСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΊΠΎΠ΄Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ java.lang.Exception Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ throws.

Но это Π½Π΅ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ Exeption ΠΈΠ»ΠΈ Throwable Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ с Π½ΠΈΠΌΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ вашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.ЕдинствСнная информация, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π²Π°ΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΉΡ‚ΠΈ Π½Π΅ Ρ‚Π°ΠΊ. Но Π²Ρ‹ Π½Π΅ Π΄Π΅Π»ΠΈΡ‚Π΅ΡΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΎ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… событиях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ. Π’Ρ‹ скрываСтС эту ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π·Π° ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌΠΈ выброса ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.Бтановится Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅, ΠΊΠΎΠ³Π΄Π° вашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ мСняСтся со Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ. Выброс ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ скрываСт всС измСнСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠΆΠΈΠ΄Π°Ρ‚ΡŒ ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ нСскольким Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹ΠΌ ошибкам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² тСстовом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ вмСсто ошибки компилятора.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ классы

Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ классы ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Π΄Π°ΠΆΠ΅ Ссли Π²Π°ΠΌ приходится ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ нСсколько ΠΈΠ· Π½ΠΈΡ…. Π­Ρ‚ΠΎ сообщаСт Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ устройству, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ событий Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ позволяСт Π²Π°ΠΌ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ throw, ΠΊΠΎΠ³Π΄Π° ваш ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²Ρ‹Π΄Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ваши ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π·Π½Π°ΡŽΡ‚ ΠΎΠ± измСнСниях ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Ссли Π²Ρ‹ измСняСтС выбрасываСмыС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π’Π°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΡ€ΠΎΡ‰Π΅ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Ρ‡Π΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ запускС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ тСстового ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°.

Ошибка 2: ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ ΠΎΠ±ΠΎΠ±Ρ‰Π΅Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Π‘Π΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΡŒ этой ошибки зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚Π΅, ΠΈ Π³Π΄Π΅ Π²Ρ‹ ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π±Ρ‹Π»ΠΎ Π±Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ java.lang.Exception Π² основном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ вашСго прилоТСния Java SE. Но Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Π΅ΡΡ‚ΡŒ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ссли Π²Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π½Π°Π΄ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΌΠΈ слоями вашСго прилоТСния.

Π­Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ нСсколько прСимущСств. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΈ Π½Π΅ позволяСт Π²Π°ΠΌ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²Ρ‹ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ.

Но ΠΈΠΌΠ΅ΠΉΡ‚Π΅ Π² Π²ΠΈΠ΄Ρƒ, Ρ‡Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ catch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Π΅Π³ΠΎ супСр-классов, ΠΏΠΎΠΉΠΌΠ°Π΅Ρ‚ Π΅Π³ΠΎ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сначала ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΉΠΌΠ°ΠΉΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ спСцифичСский класс. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ваши IDE ΠΏΠΎΠΊΠ°ΠΆΡƒΡ‚ сообщСниС ΠΎΠ± ошибкС ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠΈ ΠΎ нСдостиТимом Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°.

Ошибка 3: Π›ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ проброс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Π­Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· самых популярных ошибок ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Java. ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ€ΠΎΡˆΠ΅Π½ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρƒ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ случая использования. Но Π²Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΏΠΎ Ρ‚Ρ€Π΅ΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

1. Π£ вас нСдостаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎ ΠΏΡ€Π΅Ρ†Π΅Π΄Π΅Π½Ρ‚Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ…ΠΎΡ‡Π΅Ρ‚ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ вашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒΡŽ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠ³ΠΎ повСдСния ΠΈ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ. Π’ этом случаС Π½Π΅Ρ‚ нСобходимости Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ. Π­Ρ‚ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ Π»ΠΎΠΆΠ½ΠΎΠ΅ сообщСниС ΠΎΠ± ошибкС Π² Ρ„Π°ΠΉΠ» ΠΆΡƒΡ€Π½Π°Π»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½ вашСй ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ.

2. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π΅ прСдоставляСт Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, которая Π΅Ρ‰Π΅ Π½Π΅ являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ самого ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π•Π³ΠΎ трассировка ΠΈ трассировка стСка Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ всю Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ событии. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ описываСт это, Π° трассировка стСка содСрТит ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ классС, ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΈ строкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ½Π° ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π°.

3. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ нСсколько Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ рСгистрируСтС Π΅Π³ΠΎ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ catch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Π³ΠΎ Π»ΠΎΠ²ΠΈΡ‚. Π­Ρ‚ΠΎ испортит статистику Π² вашСм инструмСнтС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π° ΠΈ затрудняСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° ΠΆΡƒΡ€Π½Π°Π»Π° для Π²Π°ΡˆΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

РСгистрируйтС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΌ, Π³Π΄Π΅ Π²Ρ‹ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π»ΡƒΡ‡ΡˆΠ΅ всСго Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅. Как Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ doSomething Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ΠœΠ΅Ρ‚ΠΎΠ΄ doMore просто ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρƒ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° нСдостаточно ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π—Π°Ρ‚Π΅ΠΌ ΠΎΠ½ обрабатываСтся Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ doEvenMore, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚Π°ΠΊΠΆΠ΅ записываСт сообщСниС ΠΆΡƒΡ€Π½Π°Π»Π°.

Ошибка 4: использованиС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ для управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ

ИспользованиС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ для управлСния ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ вашСго прилоТСния считаСтся Π°Π½Ρ‚ΠΈ-шаблоном ΠΏΠΎ Π΄Π²ΡƒΠΌ основным ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ:

Они Π² основном Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Go To, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΡ‚ΠΌΠ΅Π½ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈ пСрСходят ΠΊ ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π±Π»ΠΎΠΊΡƒ catch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ Ρ‚Ρ€ΡƒΠ΄Π½Ρ‹ΠΌ для чтСния.

Они Π½Π΅ Ρ‚Π°ΠΊ эффСктивны, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‰ΠΈΠ΅ структуры управлСния Java. Как Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· названия, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… событий, Π° JVM Π½Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡ… Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΊΠΎΠ΄.Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ условия, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ свои Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈΠ»ΠΈ инструкции if-else, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ Π±Π»ΠΎΠΊΠΈ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹.

Ошибка 5: ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ возникновСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Иногда Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ€Π΅ΡˆΠΈΠ»Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для бизнСса с ΠΊΠΎΠ΄Π°ΠΌΠΈ ошибок ΠΈ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΎΠΉ. НСт Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠ»ΠΎΡ…ΠΎΠ³ΠΎ Π² этом ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π΅, Ссли Π²Ρ‹ Π½Π΅ устранитС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ.

Когда Π²Ρ‹ создаСтС Π½ΠΎΠ²ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² качСствС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ потСряСтС трассировку сообщСния ΠΈ стСка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ событиС, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅Π΅ вашС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Класс Exception ΠΈ всС Π΅Π³ΠΎ подклассы ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²-конструкторов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ исходноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ΠΈ Π·Π°Π΄Π°ΡŽΡ‚ Π΅Π³ΠΎ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ.

Ошибка 6: ΠžΠ±ΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Когда Π²Ρ‹ ΠΎΠ±ΠΎΠ±Ρ‰Π°Π΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ Π»ΠΎΠ²ΠΈΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, NumberFormatException, ΠΈ вмСсто этого Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ нСспСцифичСскоС java.lang.Exception. Π­Ρ‚ΠΎ ΠΏΠΎΡ…ΠΎΠΆΠ΅, Π½ΠΎ Π΄Π°ΠΆΠ΅ Ρ…ΡƒΠΆΠ΅, Ρ‡Π΅ΠΌ пСрвая ошибка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ я описал Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅. Он Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ скрываСт ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ случаС ошибки Π½Π° вашСм API, Π½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ затрудняСт доступ.

Как Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π΅ ΠΊΠΎΠ΄Π°, Π΄Π°ΠΆΠ΅ Ссли Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, Π²Ρ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΠΈΡ… ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ класс Exception ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏ Π΅Π³ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Π­Ρ‚ΠΎΡ‚ ΠΊΠΎΠ΄ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³Ρ€ΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΉ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π½ΠΎ Π΅Π³ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ. Бтановится Π΅Ρ‰Π΅ Ρ…ΡƒΠΆΠ΅, Ссли Π²Ρ‹ сочСтаСтС этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ с ошибкой 5. Π­Ρ‚ΠΎ удаляСт всю ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ событии.

Π˜Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π»ΡƒΡ‡ΡˆΠΈΠΉ?

Π‘ΡƒΠ΄ΡŒΡ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ ΠΈ сохраняйтС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ возникновСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ бросаСтС, Π΄ΠΎΠ»ΠΆΠ½Ρ‹ всСгда Π±Ρ‹Ρ‚ΡŒ максимально ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌΠΈ. И Ссли Π²Ρ‹ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ исходный ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² качСствС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ трассировку стСка ΠΈ Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ событиС.

Ошибка 7: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ

Как я ΡƒΠΆΠ΅ объяснял Ρ€Π°Π½Π΅Π΅, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅, Ссли Π²Ρ‹ установитС исходноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² качСствС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Но Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΠ΅Ρ€Π΅ΡƒΡΠ΅Ρ€Π΄ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΈ вводят ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½ΠΎΠ³ΠΎ уровня. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΎΠ½ΠΈ ΡƒΠ»Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΡ€ΠΎΠ²Π½Π΅ пСрсистСнтности ΠΈ пСрСносят Π΅Π³ΠΎ Π² MyPersistenceException. БизнСс-ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π»ΠΎΠ²ΠΈΡ‚ ΠΈ ΠΎΠ±Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Π΅Π³ΠΎ Π² MyBusinessException, ΠΈ это продолТаСтся Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΎΠ½ΠΎ Π½Π΅ достигнСт уровня API ΠΈΠ»ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ.

Π›Π΅Π³ΠΊΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ эти Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ классы ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π½Π΅ Π΄Π°ΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΈΡ… прСимущСств. Они просто вводят Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ слои, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. И хотя Π±Ρ‹Π»ΠΎ Π±Ρ‹ Π·Π°Π±Π°Π²Π½ΠΎ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Π°Ρ€ΠΎΠΊ Π²ΠΎ мноТСствС красочной Π±ΡƒΠΌΠ°Π³ΠΈ, это Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния.

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ

ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΏΠΎΠ΄ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎ ΠΊΠΎΠ΄Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎ самом сСбС, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π²Ρ‹Π·Π²Π°Π²ΡˆΡƒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π‘Π½Π°Ρ‡Π°Π»Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ€Π²Π°Ρ‚ΡŒΡΡ Ρ‡Π΅Ρ€Π΅Π· нСсколько ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΉΡ‚ΠΈ ΠΈΡΡ…ΠΎΠ΄Π½ΡƒΡŽ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ. И Π΄ΠΎ сСгодняшнСго дня я Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π²ΠΈΠ΄Π΅Π» ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ использовало этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄, ΠΈ добавляло ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ слоСм ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Они Π»ΠΈΠ±ΠΎ ΠΎΠ±ΠΎΠ±Ρ‰Π°ΡŽΡ‚ сообщСниС ΠΎΠ± ошибкС ΠΈ ΠΊΠΎΠ΄, Π»ΠΈΠ±ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π±ΡƒΠ΄ΡŒΡ‚Π΅ остороТны с количСством настраиваСмых классов ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅. Π’Ρ‹ всСгда Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ сСбя, Π΄Π°Π΅Ρ‚ Π»ΠΈ Π½ΠΎΠ²Ρ‹ΠΉ класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ прСимущСства. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв для достиТСния этого Π²Π°ΠΌ Π½Π΅ трСбуСтся Π±ΠΎΠ»Π΅Π΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ уровня ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

9 Π»ΡƒΡ‡ΡˆΠΈΡ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π²Ρ‹ ΠΈΠ»ΠΈ профСссионал, всСгда ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΎΡΠ²Π΅ΠΆΠΈΡ‚ΡŒ Π² памяти ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΈ ваша ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ.

Π’ΠΎΡ‚ ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρƒ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π΅ΡΡ‚ΡŒ собствСнный Π½Π°Π±ΠΎΡ€ ΠΏΡ€Π°Π²ΠΈΠ» ΠΈΡ… использования. И Ссли Π²Ρ‹ Π½ΠΎΠ²ΠΈΡ‡ΠΎΠΊ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π΅, вас ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚ΡŒ, насколько эти ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ ΠΎΡ‚ Ρ‚Π΅Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ использовали Ρ€Π°Π½ΡŒΡˆΠ΅.

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΡ‚ΡŒ нСсколько ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Ρ… ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ΠΊΠΎΠΌΠ°Π½Π΄. Π’ΠΎΡ‚ 9 самых Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΈΠ· Π½ΠΈΡ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ»ΠΈ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.

1. ΠžΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚Π΅ рСсурсы Π² Π±Π»ΠΎΠΊΠ΅ finally ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ «Try-With-Resource»

Π”ΠΎΠ²ΠΎΠ»ΡŒΠ½ΠΎ часто Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ рСсурс Π² своСм Π±Π»ΠΎΠΊΠ΅ try, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ InputStream, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅. РаспространСнной ошибкой Π² ​​таких ситуациях являСтся Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ рСсурса Π² ΠΊΠΎΠ½Ρ†Π΅ Π±Π»ΠΎΠΊΠ° try.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ гСнСрируСтся ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. ВсС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π² Π±Π»ΠΎΠΊΠ΅ try Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹, ΠΈ рСсурс Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΊΡ€Ρ‹Ρ‚.

Но Π²Ρ‹ Π½Π΅ зря Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊ try. Π’Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ нСсколько ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΈΠ»ΠΈ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, Π²Ρ‹ сами Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π΅ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ ΠΊΠΎΠ½Ρ†Π° Π±Π»ΠΎΠΊΠ° try. И ΠΊΠ°ΠΊ слСдствиС, Π²Ρ‹ Π½Π΅ Π·Π°ΠΊΡ€ΠΎΠ΅Ρ‚Π΅ рСсурсы.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ слСдуСт ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ вСсь ΠΊΠΎΠ΄ очистки Π² Π±Π»ΠΎΠΊ finally ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ try-with-resource.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±Π»ΠΎΠΊ Finally

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ послСдних Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… строк вашСго Π±Π»ΠΎΠΊΠ° try, Π±Π»ΠΎΠΊ finally всСгда выполняСтся. Π­Ρ‚ΠΎ происходит Π»ΠΈΠ±ΠΎ послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния Π±Π»ΠΎΠΊΠ° try, Π»ΠΈΠ±ΠΎ послС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π±Π»ΠΎΠΊΠ΅ catch. Благодаря этому Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ освободитС всС Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы.

ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ Java 7 «Try-With-Resource»

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ссли ваш рСсурс Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ интСрфСйс AutoCloseable. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ стандартных рСсурсов Java. Когда Π²Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚Π΅ рСсурс Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ try, ΠΎΠ½ автоматичСски закрываСтся послС выполнСния Π±Π»ΠΎΠΊΠ° try ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

2. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅

Π§Π΅ΠΌ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Π΅Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π²Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅, Ρ‚Π΅ΠΌ Π»ΡƒΡ‡ΡˆΠ΅. ВсСгда ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ»Π»Π΅Π³Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π·Π½Π°Π΅Ρ‚ вашСго ΠΊΠΎΠ΄Π°, Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ, ΠΈ Π²Π°ΠΌ Ρ‡Π΅Ρ€Π΅Π· нСсколько мСсяцСв, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ваш ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ вашСго API. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ваш ΠΌΠ΅Ρ‚ΠΎΠ΄ смоТСт Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π΅Π³ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ всСгда ΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ Π½Π°ΠΉΡ‚ΠΈ класс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΡƒΡ‡ΡˆΠ΅ всСго ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для вашСго ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ события, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ NumberFormatException вмСсто IllegalArgumentException. И ΠΈΠ·Π±Π΅Π³Π°ΠΉΡ‚Π΅ создания нСспСцифичСского ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

3. Π”ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π²Π°ΠΌΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ опрСдСляСтС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² сигнатурС вашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π°, Π²Ρ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² своСм Javadoc. Π­Ρ‚ΠΎ прСслСдуСт Ρ‚Ρƒ ΠΆΠ΅ Ρ†Π΅Π»ΡŒ, Ρ‡Ρ‚ΠΎ ΠΈ прСдыдущая пСрСдовая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°: ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ большС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ ΠΌΠΎΠ³ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π˜Ρ‚Π°ΠΊ, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ объявлСниС @throws Π² свой Javadoc ΠΈ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ситуации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

4. Π“Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ с ΠΎΠΏΠΈΡΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сообщСниями

ИдСя, лСТащая Π² основС этой ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Π° Π΄Π²ΡƒΠΌ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ. Но Π½Π° этот Ρ€Π°Π· Π²Ρ‹ Π½Π΅ прСдоставляСтС ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ сторонС вашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ всС, ΠΊΡ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, ΠΊΠΎΠ³Π΄Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Ρ‹Π»ΠΎ зарСгистрировано Π² Ρ„Π°ΠΉΠ»Π΅ ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈΠ»ΠΈ Π² вашСм инструмСнтС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³Π°.

Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΡ‡Π½Π΅Π΅ ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для понимания ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ события.

НС ΠΏΠΎΠΉΠΌΠΈΡ‚Π΅ мСня Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ; Π²Ρ‹ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π°Π±Π·Π°Ρ† тСкста. Но Π²Π°ΠΌ слСдуСт ΠΎΠ±ΡŠΡΡΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² 1-2 ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… прСдлоТСниях. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ вашСй Π³Ρ€ΡƒΠΏΠΏΠ΅ эксплуатации ΠΏΠΎΠ½ΡΡ‚ΡŒ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Π°Π½Π°Π»ΠΈΠ· Π»ΡŽΠ±Ρ‹Ρ… ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚ΠΎΠ², связанных с обслуТиваниСм.

Если Π²Ρ‹ Π²Ρ‹Π±Π΅Ρ€Π΅Ρ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π΅Π³ΠΎ имя класса, скорСС всСго, ΡƒΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ошибки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π₯ΠΎΡ€ΠΎΡˆΠΈΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся NumberFormatException. Оно вызываСтся конструктором класса java.lang.Long, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ прСдоставляСтС String Π² Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅.

НазваниС класса NumberFormatException ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ Π²Π°ΠΌ ΠΎ Ρ‚ΠΈΠΏΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹. Π•Π³ΠΎ сообщСниС Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ строку Π²Π²ΠΎΠ΄Π°, которая Π²Ρ‹Π·Π²Π°Π»Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Если имя класса ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅ Ρ‚Π°ΠΊ Π²Ρ‹Ρ€Π°Π·ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π² сообщСнии.

5. Π‘Π½Π°Ρ‡Π°Π»Π° ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ IDE ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ Π² этой Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅. Они ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‚ ΠΎ нСдостиТимом Π±Π»ΠΎΠΊΠ΅ ΠΊΠΎΠ΄Π°, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ сначала ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΌΠ΅Π½Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ выполняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π»ΠΎΠΊ catch, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡŽ. Π˜Ρ‚Π°ΠΊ, Ссли Π²Ρ‹ сначала ΠΏΠΎΠΉΠΌΠ°Π΅Ρ‚Π΅ IllegalArgumentException, Π²Ρ‹ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ достигнСтС Π±Π»ΠΎΠΊΠ° catch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ NumberFormatException, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ это подкласс IllegalArgumentException.

ВсСгда сначала ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ класс ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ добавляйтС ΠΌΠ΅Π½Π΅Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Π° Π² ΠΊΠΎΠ½Π΅Ρ† вашСго списка.

6. НС ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Throwable

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Throwable Π² ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΈ catch, ΠΎΠ½ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ; ΠΎΠ½ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ всС ошибки. JVM Π²Ρ‹Π΄Π°Π΅Ρ‚ ошибки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Ρ‹ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ этого ΡΠ²Π»ΡΡŽΡ‚ΡΡ OutOfMemoryError ΠΈΠ»ΠΈ StackOverflowError. И Ρ‚ΠΎ, ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠ΅ Π²Ρ‹Π·Π²Π°Π½ΠΎ ситуациями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π²Π½Π΅ контроля прилоТСния ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹.

Π˜Ρ‚Π°ΠΊ, Π»ΡƒΡ‡ΡˆΠ΅ Π½Π΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Throwable, Ссли Π²Ρ‹ Π½Π΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎ ΡƒΠ²Π΅Ρ€Π΅Π½Ρ‹, Ρ‡Ρ‚ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚Π΅ΡΡŒ Π² ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ обязаны ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ.

7. НС ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π’Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎΠ± ошибкС, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»Π°ΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ пСрвая Ρ‡Π°ΡΡ‚ΡŒ вашСго сцСнария использования?

Часто это Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, вСроятно, Π±Ρ‹Π» ΡƒΠ²Π΅Ρ€Π΅Π½, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Π²Π°Π½ΠΎ, ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ» Π±Π»ΠΎΠΊ catch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π½Π΅ рСгистрируСт Π΅Π³ΠΎ. И ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ этот Π±Π»ΠΎΠΊ, Π²Ρ‹, скорСС всСго, Π΄Π°ΠΆΠ΅ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· извСстных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Β«Π­Ρ‚ΠΎΠ³ΠΎ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚Β».

Π§Ρ‚ΠΎ ΠΆ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π²Ρ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ΅.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, поТалуйста, Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Π’Ρ‹ Π½Π΅ Π·Π½Π°Π΅Ρ‚Π΅, ΠΊΠ°ΠΊ ΠΊΠΎΠ΄ измСнится Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ. ΠšΡ‚ΠΎ-Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ, которая ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΠ»Π° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ событиС, Π½Π΅ осознавая, Ρ‡Ρ‚ΠΎ это создаСт ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ. Или ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, измСняСтся ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ нСсколько ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ класса, Π° Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… всС.

Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ хотя Π±Ρ‹ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ сообщСниС Π² ΠΆΡƒΡ€Π½Π°Π»Π΅, ΡΠΎΠΎΠ±Ρ‰Π°ΡŽΡ‰Π΅Π΅ всСм, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ нСмыслимоС ΠΈ Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ это ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ.

8. НС ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² Π»ΠΎΠ³ сгСнСрированныС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π­Ρ‚ΠΎ, вСроятно, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто игнорируСмая пСрСдовая ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π² спискС. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ мноТСство Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°ΠΆΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ пСрСхватываСтся, рСгистрируСтся ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ гСнСрируСтся.

ΠœΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятным Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠ³ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Но, Π² Ρ‚Π°ΠΊΠΎΠΌ случаС, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΈΡΠ°Ρ‚ΡŒ Π² Π»ΠΎΠ³ нСсколько сообщСний ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹Π΅ сообщСния Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Как ΠΎΠ±ΡŠΡΡΠ½ΡΠ΅Ρ‚ΡΡ Π² Π»ΡƒΡ‡ΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ β„–4, сообщСниС ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ событиС. А трассировка стСка сообщаСт Π²Π°ΠΌ, Π² ΠΊΠ°ΠΊΠΎΠΌ классС, ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅ ΠΈ строкС Π±Ρ‹Π»ΠΎ сгСнСрировано ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ΅. Но ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ слСдуйтС ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²ΠΎΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Π½ΠΎΠΌΠ΅Ρ€ 9.

Π˜Ρ‚Π°ΠΊ, ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π΅Π³ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ это Π² сигнатурС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡŒΡ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΉ сторонС ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎΠ± этом.

9. ΠžΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π½Π΅ обрабатывая Π΅Π³ΠΎ

Иногда Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ стандартноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² настраиваСмоС. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ являСтся бизнСс-ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ для ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ прилоТСния ΠΈΠ»ΠΈ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ для вашСго класса ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

Когда Π²Ρ‹ это сдСлаСтС, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ установитС исходноС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² качСствС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹. Класс Exception прСдоставляСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ конструктора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ Throwable Π² качСствС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС Π²Ρ‹ потСряСтС трассировку стСка ΠΈ сообщСниС ΠΎΠ± исходном ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ, Ρ‡Ρ‚ΠΎ Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚ Π°Π½Π°Π»ΠΈΠ· ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ события, Π²Ρ‹Π·Π²Π°Π²ΡˆΠ΅Π³ΠΎ вашС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

РСзюмС

Как Π²Ρ‹ Π²ΠΈΠ΄Π΅Π»ΠΈ, Π΅ΡΡ‚ΡŒ ΠΌΠ½ΠΎΠ³ΠΎ Ρ€Π°Π·Π½Ρ‹Ρ… Π²Π΅Ρ‰Π΅ΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅ΡŽΡ‚ Ρ†Π΅Π»ΡŒ ΡƒΠ»ΡƒΡ‡ΡˆΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ вашСго ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ удобство использования вашСго API.

Π§Π°Ρ‰Π΅ всСго ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ошибок ΠΈ срСдством связи. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΌ слСдуСт ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π΄ΠΎΠ²Ρ‹Π΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ, со своими ΠΊΠΎΠ»Π»Π΅Π³Π°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ всС ΠΏΠΎΠ½ΠΈΠΌΠ°Π»ΠΈ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ ΠΈ использовали ΠΈΡ… ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Java. Π§Π°ΡΡ‚ΡŒ 1

РазбираСмся, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹ ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Из этой ΡΡ‚Π°Ρ‚ΡŒΠΈ Π²Ρ‹ ΡƒΠ·Π½Π°Π΅Ρ‚Π΅:

Код вашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ исправно компилируСтся ΠΈ запускаСтся, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΡ‚ вмСсто ΠΆΠ΅Π»Π°Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ нСпонятный тСкст. Π‘Ρ‚Ρ€ΠΎΡ‡ΠΊΠΈ Π΅Π³ΠΎ Π±ΡƒΠ΄Ρ‚ΠΎ ΠΊΡ€ΠΈΡ‡Π°Ρ‚ Π½Π° вас, Π°ΠΆ ΠΏΠΎΠ±Π°Π³Ρ€ΠΎΠ²Π΅Π»ΠΈ.

Π—Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Π΄Π°Π»Π΅ΠΊΠΎ Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ Π½Π°Π΄ΠΎ: сдСлаСм Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π»ΠΈ Π΅Ρ‰Ρ‘ Π² школС, β€” ΠΏΠΎΠ΄Π΅Π»ΠΈΠΌ Π½Π° ноль.

java exception ΠΊΠΎΠ΄ ошибки. 22052322022021 6a4e9b3ae3023faad72ace61e6264ce47ed78056. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-22052322022021 6a4e9b3ae3023faad72ace61e6264ce47ed78056. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 22052322022021 6a4e9b3ae3023faad72ace61e6264ce47ed78056. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Β«Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅Β» β€” сокращСниС ΠΎΡ‚ слов Β«ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ случай». Π­Ρ‚ΠΎ ситуация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΈΠ»ΠΈ Π΅Ρ‘ Ρ€Π°Π±ΠΎΡ‚Π° становится бСссмыслСнной. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ Ρ€Π΅Ρ‡ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ Π½Π΅ΡˆΡ‚Π°Ρ‚Π½Ρ‹Ρ… ситуациях β€” ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π±Ρ‹Π²Π°ΡŽΡ‚ ΠΈ Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π½Ρ‹ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ сам.

Π­Ρ‚ΠΎ интСрСсно. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Java появились ΡƒΠΆΠ΅ Π² ΠΏΠ΅Ρ€Π²ΠΎΠΉ вСрсии языка. А Π²ΠΎΡ‚ Π² языках, Π³Π΄Π΅ ΠΈΡ… Π½Π΅Ρ‚, вмСсто Π½ΠΈΡ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ ΠΊΠΎΠ΄Ρ‹ ошибок.

java exception ΠΊΠΎΠ΄ ошибки. 21203522022021 59f3456fcbe055539aed7a4b201720c86b9d3527. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-21203522022021 59f3456fcbe055539aed7a4b201720c86b9d3527. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 21203522022021 59f3456fcbe055539aed7a4b201720c86b9d3527. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

Π₯Π»Π΅Π±ΠΎΠΌ Π½Π΅ ΠΊΠΎΡ€ΠΌΠΈ β€”
Π΄Π°ΠΉ ΠΊΠΎΠΌΡƒ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΠΏΡ€ΠΎ Java Ρ€Π°ΡΡΠΊΠ°Π·Π°Ρ‚ΡŒ.

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ ошибки

Π£ всСх классов ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π΅ΡΡ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠΉ класс-ΠΏΡ€Π΅Π΄ΠΎΠΊ Throwable, ΠΎΡ‚ Π½Π΅Π³ΠΎ Π½Π°ΡΠ»Π΅Π΄ΡƒΡŽΡ‚ΡΡ классы Error ΠΈ Exception, Π±Π°Π·ΠΎΠ²Ρ‹Π΅ для всСх ΠΏΡ€ΠΎΡ‡ΠΈΡ….

java exception ΠΊΠΎΠ΄ ошибки. 21252222022021 d58f50d1222620cd1cfe95da3a91221bd0d26e65. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-21252222022021 d58f50d1222620cd1cfe95da3a91221bd0d26e65. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 21252222022021 d58f50d1222620cd1cfe95da3a91221bd0d26e65. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ошибки (Errors)

Error is the superclass of all the exceptions from which ordinary programs are not ordinarily expected to recover.

Π§Ρ‚ΠΎ Π² ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚: ошибки (Error) β€” это Ρ‚Π°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΡΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π΅ прСдполагаСтся.

Π’ΠΎ Π΅ΡΡ‚ΡŒ это ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСльзя (нСдопустимо) ΠΈΡΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π½Π° Ρ…ΠΎΠ΄Ρƒ. Всё, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ остаётся, β€” ΠΈΠ·Π²ΠΈΠ½ΠΈΡ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ Π²ΠΏΡ€Π΅Π΄ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π³Π΄Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ мСньшС ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ситуаций. НапримСр, Π½Π΅ Π΄ΠΎΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ Π³Π»ΡƒΠ±ΠΎΠΊΠΎΠΉ рСкурсии, ΠΊΠ°ΠΊ Π² ΠΊΠΎΠ΄Π΅ Π½ΠΈΠΆΠ΅:

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ этого ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Ρƒ нас Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ ошибка: Exception in thread Β«mainΒ» java.lang.StackOverflowError β€” стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² пСрСполнился, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΌΡ‹ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π»ΠΈ условиС Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· рСкурсии.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (Exceptions)

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ± Exception. Π­Ρ‚ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚, Ссли Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ допустил Π½Π΅Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ, Π½Π΅ прСдусмотрСл особыС случаи Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (ΠΈΠ»ΠΈ сообщаСт ΠΎ Π½ΠΈΡ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ).

1. НСвыполнимая опСрация

ΠœΠΈΡ€ Π½Π΅ Ρ€ΡƒΡ…Π½ΡƒΠ», ΠΊΠ°ΠΊ Π² случаС с Error, просто Java Π½Π΅ Π·Π½Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ дальшС. Как Ρ€Π°Π· ΠΈΠ· этого разряда Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль Π² Π½Π°Ρ‡Π°Π»Π΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ: ΠΈ ΠΏΡ€Π°Π²Π΄Π°, ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ oops?

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ сами, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ класса ArithmeticException наслСдуСтся ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΎΡ‚ Exception.

Другая частая ситуация β€” ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ элСмСнту массива. НапримСр, Ρƒ нас Π² Π½Ρ‘ΠΌ Π΄Π΅ΡΡΡ‚ΡŒ элСмСнтов, Π° ΠΌΡ‹ пытаСмся ΠΎΠ±Ρ€Π°Ρ‚ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΎΠ΄ΠΈΠ½Π½Π°Π΄Ρ†Π°Ρ‚ΠΎΠΌΡƒ.

2. ΠžΡΠΎΠ±Ρ‹ΠΉ случай Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Классика. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π·Π°Π΄Π°Ρ‡Ρƒ ΠΎ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ·ΠΊΠ΅ Π²ΠΎΠ»ΠΊΠ°, ΠΊΠΎΠ·Ρ‹ ΠΈ капусты Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅ΠΊΡƒ: Π² Π»ΠΎΠ΄ΠΊΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π° пассаТира, Π½ΠΎ Π²ΠΎΠ»ΠΊΠ° с ΠΊΠΎΠ·ΠΎΠΉ ΠΈ ΠΊΠΎΠ·Ρƒ с капустой нСльзя ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½Π° Π±Π΅Ρ€Π΅Π³Ρƒ вмСстС. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ особый случай Π² бизнСс-Π»ΠΎΠ³ΠΈΠΊΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ нСльзя Π½Π°Ρ€ΡƒΡˆΠ°Ρ‚ΡŒ.

Или ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Ρ‚Ρƒ Π½Π°Ρ‡Π°Π»Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° ΠΈ Π΄Π°Ρ‚Ρƒ Π΅Π³ΠΎ окончания. Вторая Π΄Π°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠΉ.

Или, допустим, Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ Ρ„Π°ΠΉΠ». Π‘Π°ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ написан Π²Π΅Ρ€Π½ΠΎ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π΅Π΄Π°Π» Π² Π½Π΅Π³ΠΎ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ. Волько Π²ΠΎΡ‚ Ρƒ этого Ρ€Π°Π±ΠΎΡ‚Π½ΠΈΠΊΠ° Π½Π΅Ρ‚ ΠΏΡ€Π°Π²Π° Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ этот Ρ„Π°ΠΉΠ» (Π΅Π³ΠΎ Ρ€ΠΎΠ»ΡŒ ΠΈ ΠΏΡ€Π°Π²Π° обусловлСны ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ). Π§Ρ‚ΠΎ ΠΆΠ΅ Ρ‚ΠΎΠ³Π΄Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρƒ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ? Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ-Ρ‚ΠΎ Π½Π΅Ρ‡Π΅Π³ΠΎ, вСдь ΠΌΠ΅Ρ‚ΠΎΠ΄ Π½Π΅ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π». Π‘Π°ΠΌΠΎΠ΅ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ β€” Π²Ρ‹Π΄Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

Π’ Π΄Π΅Ρ€Π΅Π²ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΌΡ‹ Π΅Ρ‰Ρ‘ углубимся, Π° сСйчас посмотрим, Ρ‡Ρ‚ΠΎ ΠΈ ΠΊΠ°ΠΊ с Π½ΠΈΠΌΠΈ Π΄Π΅Π»Π°ΡŽΡ‚.

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ

ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ β€” Π½ΠΈΡ‡Π΅Π³ΠΎ; Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° просто ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ ошибки Π² Java

java exception ΠΊΠΎΠ΄ ошибки. Java Deep 7.4 5020 83cb21. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-Java Deep 7.4 5020 83cb21. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° Java Deep 7.4 5020 83cb21. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

java exception ΠΊΠΎΠ΄ ошибки. JavaSpec Welcome 970x90 1801 439a19. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-JavaSpec Welcome 970x90 1801 439a19. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° JavaSpec Welcome 970x90 1801 439a19. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

Π’ нашСй ΠΆΠΈΠ·Π½ΠΈ Π½Π΅Ρ€Π΅Π΄ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ситуации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Π»ΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, пошли Π²Ρ‹ ΡƒΡ‚Ρ€ΠΎΠΌ ΡƒΠΌΡ‹Π²Π°Ρ‚ΡŒΡΡ ΠΈ с досадой ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π²ΠΎΠ΄Ρƒ. Π’Ρ‹ΡˆΠ»ΠΈ Π½Π° ΡƒΠ»ΠΈΡ†Ρƒ, сСли Π² ΠΌΠ°ΡˆΠΈΠ½Ρƒ, Π° ΠΎΠ½Π° Π½Π΅ заводится. Позвонили Π΄Ρ€ΡƒΠ³Ρƒ, Π° ΠΎΠ½ нСдоступСн. И Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅ ΠΈ Ρ‚ΠΎΠΌΡƒ подобноС… Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊ Π±Π΅Π· Ρ‚Ρ€ΡƒΠ΄Π° справится с ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. А Π²ΠΎΡ‚ ΠΊΠ°ΠΊ с Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹ΠΌΠΈ ситуациями справляСтся Java, ΠΌΡ‹ сСйчас ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ.

Π§Ρ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² ΠΌΠΈΡ€Π΅ программирования

Π’ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ ошибки (ошибок) ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½Π΅ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Π½Π½Ρ‹Ρ… ситуаций Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΊΠ°ΠΊ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… дСйствий ΡŽΠ·Π΅Ρ€Π°, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ·-Π·Π° ΠΏΠΎΡ‚Π΅Ρ€ΠΈ сСтСвого соСдинСния с сСрвСром, отсутствии Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ рСсурса Π½Π° дискС ΠΈ Ρ‚. ΠΏ. Π’Π°ΠΊΠΆΠ΅ срСди ΠΏΡ€ΠΈΡ‡ΠΈΠ½ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ β€” ошибки программирования Π»ΠΈΠ±ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ΅ использованиС API.

ΠŸΡ€ΠΈ этом Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ «чСловСчСского ΠΌΠΈΡ€Π°Β», ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ‡Ρ‘Ρ‚ΠΊΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°Ρ‚ΡŒ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации. И Π²ΠΎΡ‚ ΠΊΠ°ΠΊ Ρ€Π°Π· для этого Π² Java ΠΈ сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ (exception).

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова

ΠŸΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова: β€” try – слуТит для опрСдСлСния Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅; β€” catch – Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ для опрСдСлСния Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, Π³Π΄Π΅ происходит ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ; β€” finally – примСняСтся для опрСдСлСния Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π°, ΡΠ²Π»ΡΡŽΡ‰Π΅Π³ΠΎΡΡ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ ΠΎΠ½ выполняСтся Π² любом случаС Π²Π½Π΅ зависимости ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выполнСния Π±Π»ΠΎΠΊΠ° try.

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ: 1. Для возбуТдСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ throw. 2. Для прСдупрСТдСния Π² сигнатурС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, примСняСм throws.

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ посмотрим, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова Π² Java-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅:

Π—Π°Ρ‡Π΅ΠΌ Π½Π°ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ?

Для понимания ΠΎΠΏΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ· ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ³ΠΎ ΠΌΠΈΡ€Π°. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π½Π° ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ Π°Π²Ρ‚ΠΎΠ΄ΠΎΡ€ΠΎΠ³Π΅ имССтся участок с Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹ΠΌ мостом, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π³Ρ€ΡƒΠ·ΠΎΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ½ΠΎΡΡ‚ΡŒ. И Ссли ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ мосту ΠΏΡ€ΠΎΠ΅Π΄Π΅Ρ‚ Π³Ρ€ΡƒΠ·ΠΎΠ²ΠΈΠΊ со слишком большой массой, мост Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ΡΡ, Π° Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ этого ЧП ситуация для ΡˆΠΎΡ„Ρ‘Ρ€Π° станСт, мягко говоря, ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ. И Π²ΠΎΡ‚, Π΄Π°Π±Ρ‹ Ρ‚Π°ΠΊΠΎΠ³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»ΠΎ, Π΄ΠΎΡ€ΠΎΠΆΠ½Ρ‹Π΅ слуТбы Π·Π°Ρ€Π°Π½Π΅Π΅ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ Π½Π° Π΄ΠΎΡ€ΠΎΠ³Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰ΠΈΠ΅ Π·Π½Π°ΠΊΠΈ. И Ρ‚ΠΎΠ³Π΄Π° Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ, посмотрСв Π½Π° Π·Π½Π°ΠΊ, сравнит массу своСго Π°Π²Ρ‚ΠΎ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·Ρ€Π΅ΡˆΡ‘Π½Π½ΠΎΠΉ Π³Ρ€ΡƒΠ·ΠΎΠΏΠΎΠ΄ΡŠΡ‘ΠΌΠ½ΠΎΡΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ‚ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΠΎΠ΅Π΄Π΅Ρ‚ ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π΄ΠΎΡ€ΠΎΠ³Π΅.

Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ·-Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Ρ… дСйствий Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ слуТбы ΡˆΠΎΡ„Π΅Ρ€Ρ‹ ΠΊΡ€ΡƒΠΏΠ½ΠΎΠ³Π°Π±Π°Ρ€ΠΈΡ‚Π½Ρ‹Ρ… транспортных срСдств: 1) ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π·Π°Ρ€Π°Π½Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ свой ΠΏΡƒΡ‚ΡŒ; 2) Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½Ρ‹ ΠΎΠ± опасности; 3) Π±Ρ‹Π»ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½Ρ‹ ΠΎ нСвозмоТности ΠΏΡ€ΠΎΠ΅Π·ΠΆΠ°Ρ‚ΡŒ ΠΏΠΎ мосту ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Ρ… условиях.

Π’ΠΎΡ‚ ΠΊΠ°ΠΊ наш ΠΆΠΈΠ·Π½Π΅Π½Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ соотносится с ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π° Java:

java exception ΠΊΠΎΠ΄ ошибки. 1 20219 9bd18c. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-1 20219 9bd18c. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 1 20219 9bd18c. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

Π˜ΡΡ…ΠΎΠ΄Ρ ΠΈΠ· Π²Ρ‹ΡˆΠ΅ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π²Π°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ· ΠΏΡ€ΠΈΡ‡ΠΈΠ½ примСнСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java. Π—Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ ΠΎΠ½Π° Π² возмоТности прСдупрСТдСния ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации для Π΅Ρ‘ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ продолТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’ΠΎ Π΅ΡΡ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π·Π°Ρ‰ΠΈΡ‚ΠΈΡ‚ΡŒ написанный ΠΊΠΎΠ΄ ΠΎΡ‚ Π½Π΅Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ примСнСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΡƒΡ‚Ρ‘ΠΌ Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ входящих Π΄Π°Π½Π½Ρ‹Ρ….

Π§Ρ‚ΠΎ ΠΆΠ΅, Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‰Ρ‘ Ρ€Π°Π· ΠΏΠΎΠ±ΡƒΠ΄Π΅ΠΌ Π΄ΠΎΡ€ΠΎΠΆΠ½ΠΎΠΉ слуТбой. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊ, ΠΌΡ‹ вСдь Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ мСста, Π³Π΄Π΅ Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ Π’Π‘ ΠΌΠΎΠ³ΡƒΡ‚ ΠΆΠ΄Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ нСприятности. Π­Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅. Π”Π°Π»Π΅Π΅, Π½Π°ΠΌ вСдь Π½Π°Π΄ΠΎ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°ΠΊΠΈ. Π­Ρ‚ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ΅. И, Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π½Π°Π΄ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Ρ‹ объСзда, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ опасности.

Иногда Π±Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ «запасной аэродром» Π»ΠΈΠ±ΠΎ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΏΡ€Π°Π²ΠΎ Π΅Π³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π° ΡŽΠ·Π΅Ρ€Ρƒ. Но всё Ρ€Π°Π²Π½ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎΠ± опасности. Π˜Π½Π°Ρ‡Π΅ ΠΎΠ½ прСвратится Π² Ρ€Π°Π·ΡŠΡΡ€Ρ‘Π½Π½ΠΎΠ³ΠΎ ΡˆΠΎΡ„Ρ‘Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΅Ρ…Π°Π» Π΄ΠΎΠ»Π³ΠΎ, Π½Π΅ встрСтил Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‰Π΅Π³ΠΎ Π·Π½Π°ΠΊΠ° ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ добрался Π΄ΠΎ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ моста, ΠΏΡ€ΠΎΠ΅Ρ…Π°Ρ‚ΡŒ ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π½Π΅ прСдставляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ΠΌ.

Π§Ρ‚ΠΎ касаСтся программирования Π½Π° Java, Ρ‚ΠΎ ΠΌΡ‹, ΠΊΠΎΠ³Π΄Π° пишСм свои классы ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹, Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ всСгда ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Ρ‚ΡŒ контСкст ΠΈΡ… примСнСния Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ программистами Π² своих ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ…, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ со стопроцСнтной Π²Π΅Ρ€ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒΡŽ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций. Но ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΊΠΎΠ»Π»Π΅Π³ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации ΠΌΡ‹ всё-Ρ‚Π°ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹, ΠΈ это Π½Π΅ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π³ΠΎ Ρ‚ΠΎΠ½Π°.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π² Java Π½Π°ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π· ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ throws. Выбрасывая ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, ΠΌΡ‹, ΠΏΠΎ сути, объявляСм ΠΎΠ±Ρ‰Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ нашСго ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ прСдоставляСм ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΏΡ€Π°Π²ΠΎ написания ΠΊΠΎΠ΄Π° ΠΏΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°Π΅ΠΌ ΠΎ нСприятностях

Если ΠΌΡ‹ Π½Π΅ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅ΠΌ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² собствСнном ΠΌΠ΅Ρ‚ΠΎΠ΄Π΅, Π½ΠΎ ΠΆΠ΅Π»Π°Π΅ΠΌ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ситуации, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ, ΠΊΠ°ΠΊ это ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΎ упомянуто, ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово throws. Π’ сигнатурС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΎΠ½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π°Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ становится Ρ‡Π°ΡΡ‚ΡŒΡŽ интСрфСйса ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π΄Π°Ρ‘Ρ‚ ΠΏΡ€Π°Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π½Π° созданиС своСго Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ.

ПослС упоминания ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова throws ΠΌΡ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΈΠΏ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ наслСдниках класса Exception Java. Но Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Java β€” это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования, всС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹.

java exception ΠΊΠΎΠ΄ ошибки. 2 20219 ee1e82. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-2 20219 ee1e82. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 2 20219 ee1e82. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java

Когда Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ошибки ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‰Π°Ρ срСда Java Virtual Machine обСспСчиваСт созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½ΡƒΠΆΠ½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡŽ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Java β€” Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Ρ‘Ρ‚ ΠΎ мноТСствС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ унаслСдованы ΠΎΡ‚ класса Throwable β€” ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄ΠΊΠ°. ΠŸΡ€ΠΈ этом ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, дСлят Π½Π° 2 Π³Ρ€ΡƒΠΏΠΏΡ‹: 1. Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… восстановлСниС Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ дальнСйшСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. 2. Π‘ΠΈΡ‚ΡƒΠ°Ρ†ΠΈΠΈ с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ восстановлСния.

К ΠΏΠ΅Ρ€Π²ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΌΠΎΠΆΠ½ΠΎ отнСсти случаи, ΠΏΡ€ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ унаслСдованы ΠΈΠ· класса Error. Π­Ρ‚ΠΎ ошибки, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰ΠΈΠ΅ Π²ΠΎ врСмя выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΡ€ΠΈ сбоС Ρ€Π°Π±ΠΎΡ‚Ρ‹ Java Virtual Machine, ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ памяти Π»ΠΈΠ±ΠΎ сбоС систСмы. Как ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Ρ‚Π°ΠΊΠΈΠ΅ ошибки говорят ΠΎ ΡΠ΅Ρ€ΡŒΡ‘Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°Ρ…, устранСниС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ срСдствами Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ. Π”Π°Π½Π½Ρ‹ΠΉ Π²ΠΈΠ΄ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java относят ΠΊ Π½Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌ Π½Π° стадии компиляции (unchecked). К этой ΠΆΠ΅ Π³Ρ€ΡƒΠΏΠΏΠ΅ относятся ΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ-наслСдники класса Exception, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Java Virtual Machine Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ β€” RuntimeException. Π”Π°Π½Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Ρ‚ΠΎΠΆΠ΅ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ unchecked Π½Π° стадии компиляции, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, написаниС ΠΊΠΎΠ΄Π° ΠΏΠΎ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ.

Π§Ρ‚ΠΎ касаСтся Π²Ρ‚ΠΎΡ€ΠΎΠΉ Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρ‚ΠΎ ΠΊ Π½Π΅ΠΉ относят ситуации, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π΅Ρ‰Ρ‘ Π½Π° стадии написания прилоТСния, поэтому для Π½ΠΈΡ… ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ написан. Π­Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ (checked). И Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Java-Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈΠΌΠ΅Π½Π½ΠΎ с этими ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ, выполняя ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π’ процСссС исполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ гСнСрируСтся Java Virtual Machine Π»ΠΈΠ±ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ посрСдством ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° throw. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π² памяти происходит созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ основного ΠΊΠΎΠ΄Π° прСрываСтся, Π° встроСнный Π² JVM ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ Π½Π°ΠΉΡ‚ΠΈ способ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ это самоС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

java exception ΠΊΠΎΠ΄ ошибки. 3 20219 4ec690. java exception ΠΊΠΎΠ΄ ошибки Ρ„ΠΎΡ‚ΠΎ. java exception ΠΊΠΎΠ΄ ошибки-3 20219 4ec690. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° java exception ΠΊΠΎΠ΄ ошибки. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 3 20219 4ec690. ΠŸΡ€ΠΈΠ²Π΅Ρ‚, Π₯Π°Π±Ρ€! ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΡΡ‚Π°Ρ‚ΡŒΠΈ Fixing 7 Common Java Exception Handling Mistakes Π°Π²Ρ‚ΠΎΡ€Π° Thorben Janssen.

Π’ процСссС возбуТдСния ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² try ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ищСтся Π² Π±Π»ΠΎΠΊΠ΅ catch, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ слСдуСт Π·Π° try. ΠŸΡ€ΠΈ этом Ссли Π² catch присутствуСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, происходит ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° управлСния Π΅ΠΌΡƒ. Если ΠΆΠ΅ Π½Π΅Ρ‚, JVM осущСствляСт поиск ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ для этого Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Π²Ρ‹Π·ΠΎΠ²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². И Ρ‚Π°ΠΊ происходит Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ находится подходящий catch. ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊ catch выполнится, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΈΡ‚ Π² Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π±Π»ΠΎΠΊ finally. Если подходящий Π±Π»ΠΎΠΊ catch Π½Π°ΠΉΠ΄Π΅Π½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, Java Virtual Machine остановит Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, вывСдя стСк Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ stack trace. ΠŸΡ€ΠΈΡ‡Ρ‘ΠΌ ΠΏΠ΅Ρ€Π΅Π΄ этим выполнится ΠΊΠΎΠ΄ Π±Π»ΠΎΠΊΠ° finally ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠΈ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ.

Рассмотрим практичСский ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ:

А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ глянСм Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° main:

А благодаря появившимся возмоТностям Java начиная с сСдьмой вСрсии, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π΅Ρ‰Ρ‘ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…Π²Π°Ρ‚ Ρ€Π°Π·Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ, дСлая ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅ ΠΈ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½Π΅Π΅:

Π˜Ρ‚ΠΎΠ³ΠΈ

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² Java ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ благодаря использованию запасных ΠΏΡƒΡ‚Π΅ΠΉ. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, появляСтся Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций ΠΎΡ‚ Π»ΠΎΠ³ΠΈΠΊΠΈ основного ΠΊΠΎΠ΄Π° Π·Π° счёт Π±Π»ΠΎΠΊΠΎΠ² catch ΠΈ ΠΏΠ΅Ρ€Π΅Π»ΠΎΠΆΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊΠΎΠ΄Π° посрСдством throws.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ вопросы ΠΎΠ± ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΡ… Π² Java

1.Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ провСряСмыС ΠΈ нСпровСряСмыС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ? Если Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎ, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ явно ΠΏΠΎΠΉΠΌΠ°Π½Ρ‹ Π² Ρ‚Π΅Π»Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π»ΠΈΠ±ΠΎ ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Ρ‹ Π² сСкции throws ΠΌΠ΅Ρ‚ΠΎΠ΄Π°. Π’Ρ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½Ρ‹. НапримСр, это Π½ΡƒΠ»Π΅Π²ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ»ΠΈ Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π° ноль. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΡ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½Ρ‹, вСдь ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… программистов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΡ… ваш API, Π²Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Π·Π½Π°ΡŽΡ‚, ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ с ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡΠΌΠΈ. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто встрСчаСмоС провСряСмоС ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ β€” IOException, нСпровСряСмоС β€” RuntimeException. 2.ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½Ρ‹Π΅ Π² try, нСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² catch Π»ΠΈΠ±ΠΎ finally? Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π½ΠΈΠΆΠ΅ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ΄. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ строку s, которая объявлСна Π² Π±Π»ΠΎΠΊΠ΅ try, нСльзя ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² Π±Π»ΠΎΠΊΠ΅ catch. Π’ΠΎ Π΅ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π΅ скомпилируСтся.

А всё ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ нСизвСстно, Π³Π΄Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π² try ΠΌΠΎΠ³Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π’ΠΏΠΎΠ»Π½Π΅ вСроятно, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π²Ρ‹Π·Π²Π°Π½ΠΎ Π΄ΠΎ объявлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. 3.ΠŸΠΎΡ‡Π΅ΠΌΡƒ Integer.parseInt(null) ΠΈ Double.parseDouble(null) Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ? Π­Ρ‚ΠΎ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° JDK. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ людьми, Ρ‚ΠΎ Π·Π°ΠΌΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒΡΡ Π²Π°ΠΌ Π½Π°Π΄ этим Π½Π΅ стоит:

4.ΠšΠ°ΠΊΠΎΠ²Ρ‹ основныС runtime exceptions Π² Java? Π’ΠΎΡ‚ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ…:

Π˜Ρ… ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ if, Ссли условиС Π½Π΅ выполняСтся:

5.Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΏΠΎΠΉΠΌΠ°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ catch нСсколько ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ? Π’ΠΏΠΎΠ»Π½Π΅. Пока классы Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π²Π²Π΅Ρ€Ρ… ΠΏΠΎ ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ наслСдования классов Π΄ΠΎ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ супСркласса, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этого супСркласса. 6.БпособСн Π»ΠΈ конструктор Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ? БпособСн, вСдь конструктор β€” это лишь особый Π²ΠΈΠ΄ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°.

7.Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π»ΠΈ Π²Ρ‹Π·ΠΎΠ² ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ Π² final? Π’ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Но Ссли ΠΆΠ΅Π»Π°Π΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Ρ‡ΠΈΡ‚Π°Π±Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, ΠΎΠ±ΡŠΡΠ²ΠΈΡ‚Π΅ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ Π±Π»ΠΎΠΊ try-catch Π² качСствС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π²Ρ‹Π·ΠΎΠ² Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π² Π±Π»ΠΎΠΊ finally.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *