Throw new exception c ΡΡΠΎ ΡΡΠΎ
Throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² C# 7
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ. ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ C# 7. Π£ΠΆΠ΅ Π±ΡΠ»ΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ: ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Ρ ΠΎΠ±ΡΠ°Π·ΡΠΎΠΌ, Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΊΠΎΡΡΠ΅ΠΆΠΈ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ Throw.
Π C# throw Π²ΡΠ΅Π³Π΄Π° Π±ΡΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ throw β ΡΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ, Π° Π½Π΅ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Π² C#, Π² ΠΊΠΎΡΠΎΡΡΡ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΅Π³ΠΎ.
Π’Π΅ΡΠ½Π°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
ΠΠΎ 7 Π²Π΅ΡΡΠΈΠΈ ΡΠ·ΡΠΊΠ° C#, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ throw Π² ΡΠ΅ΡΠ½Π°ΡΠ½ΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Π·Π°ΠΏΡΠ΅ΡΠ°Π»ΠΎΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡΠ» ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠΌ. Π Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ Π‘#, throw ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π΅Π³ΠΎ Π² ΡΠ΅ΡΠ½Π°ΡΠ½ΡΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ.
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ΅ Π½Π° null
Β«Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Β» ΠΈ Β«ΠΠ±ΡΠ΅ΠΊΡ Nullable Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅Β», ΡΠ²Π»ΡΡΡΡΡ Π΄Π²ΡΠΌΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΌΠΈ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ C#. Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ throw Π»Π΅Π³ΡΠ΅ Π΄Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅:
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Single()
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π±ΠΎΡΡΠ±Ρ Ρ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΎΠΊ Π½Π° null, Π² Π»ΠΎΠ³Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΠΎΠ΅ ΠΈ Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅: Β«ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ²Β». Π‘ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ LINQ, ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ C# ΡΠ°ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ Single() ΠΈ First(), ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ Π² ΡΠΏΠΈΡΠΊΠ΅ ΠΈΠ»ΠΈ Π·Π°ΠΏΡΠΎΡΠ΅. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΡΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΊΡΠ°ΡΠΊΠΈΠΌΠΈ, ΠΏΡΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ Π½Π΅ Π΄Π°ΡΡ Π΄Π΅ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π°ΡΡΡΠ΅Π½ΠΎ.
Throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠΉ ΡΠ°Π±Π»ΠΎΠ½ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ Π±Π΅Π· ΡΡΠ΅ΡΠ±Π° Π΄Π»Ρ ΠΊΡΠ°ΡΠΊΠΎΡΡΠΈ:
ΠΡΠ²ΠΎΠ΄ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΡΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ
Π C# 7 ΡΠ°Π±Π»ΠΎΠ½Ρ ΡΠΈΠΏΠ° ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΡΠΏΠΎΡΠΎΠ±Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈΡ ΡΠΈΠΏΠΎΠ². Π‘ ΠΏΠΎΠΌΠΎΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΠΉ throw, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ :
ΠΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π² ΡΠ΅Π»Π΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ²
Throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠΆΠ°ΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ Ρ Π²ΡΠ±ΡΠΎΡΠΎΠΌ ΠΎΡΠΈΠ±ΠΊΠΈ:
ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Dispose
Π₯ΠΎΡΠΎΡΠΎ ΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΊΠ»Π°ΡΡΡ IDisposable Π±ΡΠΎΡΠ°ΡΡ ObjectDisposedException Π½Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ ΠΏΠΎΡΠ»Π΅ ΠΈΡ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ. Throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π±ΠΎΠ»Π΅Π΅ ΡΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΠΈ ΠΌΠ΅Π½Π΅Π΅ Π³ΡΠΎΠΌΠΎΠ·Π΄ΠΊΠΈΠΌΠΈ:
LINQ
LINQ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΡ, ΡΡΠΎΠ±Ρ ΡΠΎΡΠ΅ΡΠ°ΡΡ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π²ΡΡΠ΅ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π‘ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡΠ» Π²ΡΠΏΡΡΠ΅Π½ Π² ΡΡΠ΅ΡΡΠ΅ΠΉ Π²Π΅ΡΡΠΈΠΈ C#, LINQ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΡΡΠΈΠ»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° C# Π² ΡΡΠΎΡΠΎΠ½Ρ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ. ΠΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈ LINQ ΡΠ°ΡΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ» ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² Π΄Π΅Π»Π°ΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π½Π°ΡΠΈΠΌΡΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΈΡ ΠΈΠ· ΠΊΠΎΠ΄Π°, ΠΎΡΡΠ°Π²Π°ΡΡΡ Π² ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ΅ ΡΠΆΠ°ΡΠΎΠ³ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π»ΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Ρ Π»ΡΠΌΠ±Π΄Π° Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ. Throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ°ΡΡ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ!
Unit ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
Π’Π°ΠΊΠΆΠ΅, throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΠΎΡΠΎΡΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½Π΅ΡΠ°Π±ΠΎΡΠ°ΡΡΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΈ ΡΠ²ΠΎΠΉΡΡΠ² (Π·Π°Π³Π»ΡΡΠ΅ΠΊ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΡΡΡΡΡ ΠΏΠΎΠΊΡΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ΅ΡΡΠΎΠ². ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΈ ΡΠ»Π΅Π½Ρ ΠΎΠ±ΡΡΠ½ΠΎ Π±ΡΠΎΡΠ°ΡΡ NotImplementedException, ΠΌΠΎΠΆΠ½ΠΎ ΡΡΠΊΠΎΠ½ΠΎΠΌΠΈΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΌΠ΅ΡΡΠΎ ΠΈ Π²ΡΠ΅ΠΌΡ.
Π’ΠΈΠΏΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅
ΠΡΠ΅ΠΌ Π»Π΅Π½Ρ ΠΏΠΈΡΠ°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΡΠ΅ΠΊ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ, ΡΠ΅ΠΏΠ΅ΡΡ, Π΅ΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ C# 7, ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΠ΅ΡΠ΅ΠΏΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ΄.
Π’Π°ΠΊΠΆΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅, Π½ΠΎ ΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΠΌΠ΅ΡΠΎΠ΄Π΅.
Π‘Π΅ΡΡΠ΅ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²
Throw Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ΄Π΅Π»Π°ΡΡ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ.
ΠΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π΅ΡΠ΅ ΠΊΠΎΡΠΎΡΠ΅, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ Null-Coalescing (??).
ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π»ΠΎ Π²ΡΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° (Π³Π΅ΡΡΠ΅Ρ, ΡΠ΅ΡΡΠ΅Ρ)
ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ, Π²ΠΎ ΡΡΠΎ ΡΠ°Π·Π²ΠΎΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ Π΄Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ:
ΠΠ°ΠΊ ΠΌΡ Π²ΠΈΠ΄ΠΈΠΌ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ°ΠΌ ΠΏΡΠΈΠ²Π΅Π» ΠΊ ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΠΏΠΈΡΠ°Π»ΠΈ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠ½ΠΊΡΠ°. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½Π΅ Π½Π°Π΄ΠΎ ΠΏΠΈΡΠ°ΡΡ Π»ΠΈΡΠ½ΠΈΠΉ ΠΊΠΎΠ΄, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΡΠ΄Π΅Π»Π°Π΅Ρ ΡΡΠΎ Π·Π° Π½Π°Ρ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅? ΠΡΠΎ ΡΠΈΡΡΠ°ΡΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΠΏΡΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Π² ΠΊΠ»Π°ΡΡΠ΅ Vector (ΠΊΠΎΡΠΎΡΡΠΉ ΠΌΡ ΡΠ°Π·Π±ΠΈΡΠ°Π»ΠΈ Π² ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΎ ΠΊΠ»Π°ΡΡΡ ), ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π’ΠΎ Π΅ΡΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΎΠ΄ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π²Π΅ΠΊΡΠΎΡΠ°. Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΠΌΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅ΡΠ²Π°ΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ. ΠΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ
ΠΠ»Ρ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΈΡ ΡΠΈΡΡΠ°ΡΠΈΡ Π² C++ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Ρ Π½ΠΈΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°ΡΡ Π²ΡΠ·ΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ»ΡΡΠ°Π΅ ΠΏΠΎΠΏΡΡΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΏΠΎ ΠΈΠ½Π΄Π΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ Vector.
ΠΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ out_of_range. ΠΠ°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅ .
ΠΠ½Π²Π°ΡΠΈΠ°Π½ΡΡ
Π’Π°ΠΊΠΆΠ΅ Π±Π»ΠΎΠΊΠΈ try catch ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΡΠΎ Π²Π½ΠΎΡΠΈΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠ½ΠΎΡΡΡ Π² ΡΠ°Π±ΠΎΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ C++.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡ Π²Π΅ΠΊΡΠΎΡ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ ΡΠ°Π·ΠΌΠ΅Ρ Π²Π΅ΠΊΡΠΎΡΠ° ΠΈΠ»ΠΈ Π½Π΅ Π½Π°ΠΉΡΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ½ Π±ΡΠ΄Π΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ.
ΠΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ±ΡΠΎΡΠΈΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π² Π΄Π²ΡΡ ΡΠ»ΡΡΠ°ΡΡ :
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠΈΠ΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π½Π°ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΎΡ std::exception.
ΠΠ° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ Π²ΠΈΠ΄Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ:
std::logic_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π±ΡΠΎΡΠ΅Π½ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ½ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ , ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ΠΌ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π»ΠΎΠ³ΠΈΠΊΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π°ΡΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ»ΠΊΠΈ ΠΈΠ»ΠΈ ΠΊΠ»Π°ΡΡ ΠΈΠ½Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ.
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΎΡΠ½ΠΎΠ²Π° Π΄Π»Ρ ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
std::invalid_argument
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ std::logic_error. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΡΠΎΡΠ΅Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π° MSDN ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π² ΠΎΠ±ΡΠ΅ΠΊΡ ΠΊΠ»Π°ΡΡΠ° bitset ΠΈΠ· ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
Π Π΄Π°Π½Π½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΡΡΡΠΎΠΊΠ°, Π²Π½ΡΡΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΈΠΌΠ΅Π΅ΡΡΡ ΡΠΈΠΌΠ²ΠΎΠ» ‘b’, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΈΠ±ΠΎΡΠ½ΡΠΌ.
std::domain_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ std::logic_error. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΡΠΎΡΠ΅Π½ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π΅ΡΠ»ΠΈ ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΡ Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° Π΄Π»Ρ ΡΠΎΠ³ΠΎ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
std::length_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ std::logic_error. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΡΠΎΡΠ΅ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΡΡΡΠΈΠΌ ΠΏΡΠ΅Π΄Π΅Π»ΠΎΠ² Π΄Π»Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π»Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° Π²Π΅ΠΊΡΠΎΡΠ° Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ.
std::out_of_range
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΠ°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ std::logic_error. ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Π±ΡΠΎΡΠ΅Π½ΠΎ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π²ΡΡ ΠΎΠ΄ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΊΡΠ°. ΠΠ°ΠΊ ΡΡΠΎ Π±ΡΠ»ΠΎ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π΄Π»Ρ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π° Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Π²Π΅ΡΠΎΡΠ° Π² Π½Π°ΡΠ°Π»Π΅ ΡΡΠ°ΡΡΠΈ.
std::future_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
std::runtime_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
Π―Π²Π»ΡΠ΅ΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π»Π΅Π³ΠΊΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°Π½Ρ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π±ΡΠΎΡΠ΅Π½Ρ Π²ΠΎ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ.
std::range_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
std::overflow_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΊΠΎΠ³Π΄Π° ΡΠΈΡΠ»ΠΎ ΠΈΠΌΠ΅Π΅Ρ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΏΠΎΠ»ΠΎΠΆΠΈΡΠ΅Π»ΡΠ½ΡΡ Π±Π΅ΡΠΊΠΎΠ½Π΅ΡΠ½ΠΎΡΡΡ, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ, Ρ.Π΅. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ, ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΈΡΠ»ΠΎΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ IEEE754.
std::underflow_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΠΏΡΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ Π·Π°ΠΏΡΡΠΎΠΉ ΠΈΠ½ΡΠ΅Π³ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°, ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΡΠ΅ΡΡ ΡΠΎΡΠ½ΠΎΡΡΠΈ, Ρ.Π΅. ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ°Π», ΡΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ ΡΠΈΡΠ»ΠΎΠΌ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ IEEE754.
std::system_error
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
std::ios_base::failure
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΠΎΡΠΈΠ±ΠΊΠ°Ρ ΡΡΠ½ΠΊΡΠΈΠΉ Π²Π²ΠΎΠ΄Π° Π²ΡΠ²ΠΎΠ΄Π°.
std::bad_typeid
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ typeid ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊ Π½ΡΠ»Π΅Π²ΠΎΠΌΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ ΠΏΠΎΠ»ΠΈΠΌΠΎΡΡΠ½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ°.
std::bad_cast
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΠ°Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΏΠΎΠΏΡΡΠΊΠ° ΠΊΠ°ΡΡΠ° ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π² ΡΠΎΡ ΡΠΈΠΏ ΠΎΠ±ΡΠ΅ΠΊΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ Π²Ρ ΠΎΠ΄ΠΈΡ Ρ Π½ΠΈΠΌ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ.
std::bad_weak_ptr
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
std::bad_function_call
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
std::bad_alloc
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΄Π°ΡΡΡΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠ°ΠΌΡΡΡ.
std::bad_array_new_length
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ»ΡΡΠ°ΡΡ :
std::bad_exception
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡΠ½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌ Ρ ΠΎΡΡΠΈΠ½Π³ TIMEWEB
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΡΠ΅ ΡΡΠ°ΡΡΠΈ ΠΏΠΎ ΡΡΠΎΠΉ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅
Creating and Throwing Exceptions
Exceptions are used to indicate that an error has occurred while running the program. Exception objects that describe an error are created and then thrown with the throw keyword. The runtime then searches for the most compatible exception handler.
Programmers should throw exceptions when one or more of the following conditions are true:
The method can’t complete its defined functionality. For example, if a parameter to a method has an invalid value:
An inappropriate call to an object is made, based on the object state. One example might be trying to write to a read-only file. In cases where an object state doesn’t allow an operation, throw an instance of InvalidOperationException or an object based on a derivation of this class. The following code is an example of a method that throws an InvalidOperationException object:
When an argument to a method causes an exception. In this case, the original exception should be caught and an ArgumentException instance should be created. The original exception should be passed to the constructor of the ArgumentException as the InnerException parameter:
Exceptions contain a property named StackTrace. This string contains the name of the methods on the current call stack, together with the file name and line number where the exception was thrown for each method. A StackTrace object is created automatically by the common language runtime (CLR) from the point of the throw statement, so that exceptions must be thrown from the point where the stack trace should begin.
Public and protected methods throw exceptions whenever they can’t complete their intended functions. The exception class thrown is the most specific exception available that fits the error conditions. These exceptions should be documented as part of the class functionality, and derived classes or updates to the original class should retain the same behavior for backward compatibility.
Things to Avoid When Throwing Exceptions
The following list identifies practices to avoid when throwing exceptions:
Defining Exception Classes
Programs can throw a predefined exception class in the System namespace (except where previously noted), or create their own exception classes by deriving from Exception. The derived classes should define at least four constructors: one parameterless constructor, one that sets the message property, and one that sets both the Message and InnerException properties. The fourth constructor is used to serialize the exception. New exception classes should be serializable. For example:
Add new properties to the exception class when the data they provide is useful to resolving the exception. If new properties are added to the derived exception class, ToString() should be overridden to return the added information.
C# Language Specification
For more information, see Exceptions and The throw statement in the C# Language Specification. The language specification is the definitive source for C# syntax and usage.
Π£ΡΠΎΠΊ β182. ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠΏΠ΅ΡΠ°ΡΠΎΡΡ throw, try ΠΈ catch
ΠΠ±Π½ΠΎΠ²Π». 15 Π‘Π΅Π½ 2021 |
ΠΠ° ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈ ΠΏΠΎΠ»ΡΠ·Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ·ΡΠΊΠ΅ C++ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ΅Ρ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΡΠ»ΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ²ΡΠ·ΠΊΠ΅ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ: throw, try ΠΈ catch.
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΠΈΠ³Π½Π°Π»Ρ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΈΠ³ΡΡ Π² Π±Π°ΡΠΊΠ΅ΡΠ±ΠΎΠ», Π΅ΡΠ»ΠΈ ΠΈΠ³ΡΠΎΠΊ ΡΠΎΠ²Π΅ΡΡΠΈΠ» ΡΠ΅ΡΡΠ΅Π·Π½ΡΠΉ ΡΠΎΠ», ΡΠΎ Π°ΡΠ±ΠΈΡΡ ΡΠ²ΠΈΡΡΠΈΡ, ΠΈ ΠΈΠ³ΡΠ° ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΡΡΠ°ΡΠ½ΠΎΠΉ Π±ΡΠΎΡΠΎΠΊ. ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠΉ Π±ΡΠΎΡΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½, ΠΈΠ³ΡΠ° Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ.
Π ΡΠ·ΡΠΊΠ΅ C++ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ throw ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ (Π°Π½Π°Π»ΠΎΠ³ΠΈΡ ΡΠΎΠΌΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ²ΠΈΡΡΠΈΡ Π°ΡΠ±ΠΈΡΡ). Π‘ΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ΅ΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΈΠ»ΠΈ Β«Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΒ»).
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° throw ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ throw, Π° Π·Π° Π½ΠΈΠΌ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π»ΡΠ±ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ , ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ, ΡΡΠΎΠ±Ρ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ΄ ΠΎΡΠΈΠ±ΠΊΠΈ, ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΈΠ»ΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΉ ΠΊΠ»Π°ΡΡ-ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΡΡΡΠΎΠΊ ΡΠΈΠ³Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ°, ΠΊΠΎΡΠΎΡΡΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ.
ΠΠΎΠΈΡΠΊ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ β ΡΡΠΎ Π»ΠΈΡΡ ΠΎΠ΄Π½Π° ΡΠ°ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠ° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. ΠΠ΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ Π±Π°ΡΠΊΠ΅ΡΠ±ΠΎΠ»ΠΎΠΌ: ΠΊΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ²ΠΈΡΡΠ΅Π» Π°ΡΠ±ΠΈΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π΄Π°Π»ΡΡΠ΅? ΠΠ³ΡΠΎΠΊΠΈ ΠΎΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ, ΠΈ ΠΈΠ³ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°Π΅ΡΡΡ. ΠΠ±ΡΡΠ½ΡΠΉ Ρ ΠΎΠ΄ ΠΈΠ³ΡΡ Π½Π°ΡΡΡΠ΅Π½.
Π ΡΠ·ΡΠΊΠ΅ C++ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ try Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΡΡΠ΅ΠΉΡΠΌΠ΅Π½ΡΠΎΠ² (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Β«Π±Π»ΠΎΠΊΠ° tryΒ»). ΠΠ»ΠΎΠΊ try Π΄Π΅ΠΉΡΡΠ²ΡΠ΅Ρ ΠΊΠ°ΠΊ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Ρ Π² ΠΏΠΎΠΈΡΠΊΠ°Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²ΡΠ±ΡΠΎΡΠ΅Π½Ρ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² ΡΡΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠΊΠ΅ try, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Π±Π»ΠΎΠΊ try Π½Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΠΠ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ½ ΠΏΡΠΎΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ: Β«ΠΠΉ, Π΅ΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΡΡΠ΅ΠΉΡΠΌΠ΅Π½ΡΠΎΠ² Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° try ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ β ΠΏΠΎΠΉΠΌΠ°ΠΉ Π΅Π³ΠΎ!Β».
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠΎΠΊΠ° Π°ΡΠ±ΠΈΡΡ Π½Π΅ ΠΎΠ±ΡΡΠ²ΠΈΡ ΠΎ ΡΡΡΠ°ΡΠ½ΠΎΠΌ Π±ΡΠΎΡΠΊΠ΅, ΠΈ ΠΏΠΎΠΊΠ° ΡΡΠΎΡ ΡΡΡΠ°ΡΠ½ΠΎΠΉ Π±ΡΠΎΡΠΎΠΊ Π½Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½, ΠΈΠ³ΡΠ° Π½Π΅ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡΡ. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΡΡΡΠ°ΡΠ½ΠΎΠΉ Π±ΡΠΎΡΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½ Π΄ΠΎ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΈΠ³ΡΡ.
Π€Π°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ β ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° Π±Π»ΠΎΠΊΠ°(ΠΎΠ²) catch. ΠΠ»ΡΡΠ΅Π²ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ catch ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠ° ΠΊΠΎΠ΄Π° (ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ Β«Π±Π»ΠΎΠΊΠ° catchΒ»), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ .
ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ Π±Π»ΠΎΠΊΠ° catch, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ (Π»ΠΎΠ²ΠΈΡ) ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΈΠΏΠ° int:
ΠΠ»ΠΎΠΊΠΈ try ΠΈ catch ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²ΠΌΠ΅ΡΡΠ΅. ΠΠ»ΠΎΠΊ try ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΡΠ±ΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²ΡΠ±ΡΠΎΡΠ΅Π½Ρ Π² Π½Π΅ΠΌ, ΠΈ Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ Π±Π»ΠΎΠΊ catch Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ. ΠΠ»ΠΎΠΊ try Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΠΌΠ΅ΡΡ, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ catch, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ Π·Π° Π½ΠΈΠΌ, Π½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² catch, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½Π½ΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ (Π΄ΡΡΠ³ Π·Π° Π΄ΡΡΠ³ΠΎΠΌ).
ΠΠ°ΠΊ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΏΠΎΠΉΠΌΠ°Π½ΠΎ Π±Π»ΠΎΠΊΠΎΠΌ try ΠΈ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΎ Π² Π±Π»ΠΎΠΊ catch Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΠ½ΠΎ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ (ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π±Π»ΠΎΠΊΠ° catch), ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π²ΠΎΠ·ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅ΡΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ catch ΡΠ°Π±ΠΎΡΠ°ΡΡ ΡΠ°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° catch ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΈ Π² Π΄ΡΡΠ³ΠΎΠΌ Π±Π»ΠΎΠΊΠ΅ catch (ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π° Π½ΠΈΠΌ). ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠΉΠΌΠ°Π½Ρ ΠΏΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ° catch ΡΠ²Π»ΡΠ΅ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅), Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π½Π΅ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠ°Π»ΡΠ½ΡΡ ΡΠΈΠΏΠΎΠ² Π΄Π°Π½Π½ΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΠΎΠΉΠΌΠ°Π½Ρ ΠΏΠΎ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½ΠΎΠΉ ΡΡΡΠ»ΠΊΠ΅ (ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠΌ Π±Π»ΠΎΠΊΠ° catch ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ½Π°Ρ ΡΡΡΠ»ΠΊΠ°), Π΄Π°Π±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅Π½ΡΠΆΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΠΊ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π±Π»ΠΎΠΊΠ΅ catch, ΡΠΎ ΠΈΠΌΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡ:
ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ Π²ΡΠ²ΠΎΠ΄ ΠΏΡΠ΅Π΄ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ° ΠΎ Π½Π΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ .
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ throw, try ΠΈ catch Π²ΠΌΠ΅ΡΡΠ΅
ΠΠΎΡ ΠΏΠΎΠ»Π½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ throw, try ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² catch:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
Π Π΅Π·ΡΠΌΠΈΡΡΠ΅ΠΌ
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ-ΡΠ°ΠΊΠΈ ΠΏΡΠΎΡΡΠ°, ΠΈ Π²ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π΄Π²ΡΡ Π°Π±Π·Π°ΡΠ°Ρ :
ΠΡΠΈ Π²ΡΠ±ΡΠ°ΡΡΠ²Π°Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ (ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ throw), ΡΠΎΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΡ try. ΠΡΠ»ΠΈ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² catch, ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΡ ΠΊ Π±Π»ΠΎΠΊΡ try, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΡΡΠΎΡ ΡΠΈΠΏ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΠΎ ΡΠΎΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠΎΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΠΈ, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π±Π»ΠΎΠΊΠ° catch, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌ.
ΠΡΠ»ΠΈ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠΈΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² catch Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ Π±Π»ΠΎΠΊΡ try. ΠΡΠ»ΠΈ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ catch, ΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° Π·Π°Π²Π΅ΡΡΠ°Π΅Ρ ΡΠ²ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ Π½Π΅ΡΠ²Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Ρ Π±Π»ΠΎΠΊΠ°ΠΌΠΈ catch! ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° char Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π±Π»ΠΎΠΊΠΎΠΌ catch ΡΠΈΠΏΠ° int, Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΈΠΏΠ° int, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π±Π»ΠΎΠΊΠΎΠΌ catch ΡΠΈΠΏΠ° float.
ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΡΡ, ΡΡΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π·Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ.
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ
ΠΠΎΡ ΠΌΠ°Π»Π΅Π½ΡΠΊΠ°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ, ΡΡΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΡΡ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ:
ΠΡΡΡΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
Π₯ΠΎΡΠΎΡΠΎ ΡΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠΈΠ±ΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΡΠ±ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π ΡΡΠΎΠΌ ΡΠ°Π·Π΄Π΅Π»Π΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² try/catch/finally Π΄Π»Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΈΠ»ΠΈ Π²ΡΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ΅ΡΡΡΡΠΎΠ²
ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΎΠ±ΡΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π±Π΅Π· Π²ΡΠ΄Π°ΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡΠ»ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ Π·Π°ΠΊΡΡΡΠΈΠ΅ΠΌ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΡΡΡ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ InvalidOperationException ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ.
ΠΡΠ±ΠΎΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π·Π°Π²ΠΈΡΠΈΡ ΠΎΡ ΡΠΎΠ³ΠΎ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΎ ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ±ΡΡΠΈΡ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π΅ΡΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΎΡΠ΅Π½Ρ ΡΠ°ΡΡΠΎ, ΡΠΎ Π΅ΡΡΡ Π΅ΡΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ Π½ΠΎΡΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΈΡΠΊΠ»ΡΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Ρ Π°ΡΠ°ΠΊΡΠ΅Ρ ΠΈ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΎΡΠΈΠ±ΠΊΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π°). ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π² ΠΎΠ±ΡΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΌΠ΅Π½ΡΡΠ΅ ΠΊΠΎΠ΄Π°.
ΠΡΠ»ΠΈ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅Π³ΡΠ»ΡΡΠ½ΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΡΠΉΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΡΠΌΠΎ Π² ΠΊΠΎΠ΄Π΅. ΠΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΎΠ±ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
Π£ΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΏΡΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ ΠΊΠ»Π°ΡΡΠΎΠ²
ΠΠ»Π°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΡΠ·ΠΎΠ²Π°, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ³ΠΎ Π²ΡΠ΄Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ»Π°ΡΡ FileStream ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π΄ΠΎΡΡΠΈΠ³Π½ΡΡ Π»ΠΈ ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π²Π°Π΅ΠΌΠΎΠ³ΠΎ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΡ ΡΠ°ΠΉΠ»Π°. Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ ΡΠΏΠΎΡΠΎΠ± ΡΡΠ΅Π½ΠΈΡ Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ°ΠΉΠ»Π° Π±Π΅Π· Π²ΡΠ΄Π°ΡΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.
ΠΡΡΠ³ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠΈΡ ΠΈ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΠΈΡ ΡΡ ΠΎΡΠΈΠ±ΠΎΠΊ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NULL (ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ). Π’Π°ΠΊΠΈΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΡΠ½ΠΎΡΠΈΡΡΡΡ ΠΊ ΠΎΠ±ΡΡΠ½ΠΎΠΌΡ ΠΏΠΎΡΠΎΠΊΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠΎΠ·Π²ΡΠ°ΡΠ°Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NULL (ΠΈΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) Π² ΡΠ°ΠΊΠΈΡ ΡΠ»ΡΡΠ°ΡΡ , ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π²Π»ΠΈΡΠ½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠ΄Π°ΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π²ΠΌΠ΅ΡΡΠΎ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΊΠΎΠ΄Π° ΠΎΡΠΈΠ±ΠΊΠΈ
ΠΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π³Π°ΡΠ°Π½ΡΠΈΡΡΡΡ, ΡΡΠΎ ΡΠ±ΠΎΠΈ Π½Π΅ ΠΎΡΡΠ°Π½ΡΡΡΡ Π½Π΅Π·Π°ΠΌΠ΅ΡΠ΅Π½Π½ΡΠΌΠΈ ΠΈΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΉ ΠΊΠΎΠ΄ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΠ» ΠΊΠΎΠ΄ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°.
Π‘ΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΡΠΉ ΠΊΠ»Π°ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ ΠΏΡΠ΅Π΄ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ. ΠΡΠΈΠΌΠ΅Ρ:
ΠΡΠ·ΡΠ²Π°ΠΉΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ InvalidOperationException, Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΠΈΠ»ΠΈ Π²ΡΠ·ΠΎΠ² ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°.
ΠΠΎΡΠΎΠΆΠ΄Π°ΠΉΡΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ArgumentException ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ²Π»ΡΡΡΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌΠΈ ΠΎΡ ArgumentException, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
ΠΠ°Π²Π΅ΡΡΠ°ΠΉΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ»ΠΎΠ²ΠΎΠΌ Exception
ΠΡΠ»ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΠΏΡΠΈΡΠ²ΠΎΠΉΡΠ΅ Π΅ΠΌΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π΅ ΠΈΠΌΡ ΠΈ ΡΠ΄Π΅Π»Π°ΠΉΡΠ΅ Π΅Π³ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄Π½ΡΠΌ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° Exception. ΠΡΠΈΠΌΠ΅Ρ:
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΡΠ΅Ρ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠ² Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΊΠ»Π°ΡΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΊΠ»Π°ΡΡΠΎΠ² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎ ΠΌΠ΅Π½ΡΡΠ΅ΠΉ ΠΌΠ΅ΡΠ΅ ΡΡΠΈ ΠΎΠ±ΡΠΈΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ°: ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ Π±Π΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ², ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅, ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ, ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
Exception(), ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Exception(String), ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅.
Exception(String, Exception), ΠΏΡΠΈΠ½ΠΈΠΌΠ°ΡΡΠΈΠΉ ΡΡΡΠΎΠΊΠΎΠ²ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ ΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΏΡΠΈ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π°
ΠΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°.
ΠΠΎΠΌΠ΅ΡΡΠΈΡΠ΅ ΡΡΡ ΡΠ±ΠΎΡΠΊΡ Π² ΠΎΠ±ΡΡΡ Π±Π°Π·Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΎΠ±ΠΎΠΈΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΡΠ»ΠΈ Ρ ΡΡΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² Π½Π΅Ρ ΠΎΠ±ΡΠ΅ΠΉ Π±Π°Π·Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈΡΠ΅ ΡΠ±ΠΎΡΠΊΡ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΎΠ± ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, ΡΡΡΠΎΠ³ΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ Π΅Π΅ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΌ ΠΊΡΡΠ΅ ΡΠ±ΠΎΡΠΎΠΊ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π³ΡΠ°ΠΌΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅
Π‘ΠΎΡΡΠ°Π²Π»ΡΠΉΡΠ΅ ΠΏΠΎΠ½ΡΡΠ½ΡΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΊΠ°Π·ΡΠ²Π°Ρ Π² ΠΊΠΎΠ½ΡΠ΅ Π·Π½Π°ΠΊΠΈ ΠΏΡΠ΅ΠΏΠΈΠ½Π°Π½ΠΈΡ. ΠΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΡΡΡΠΎΠΊΠ΅, Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΠΎΠΉ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Exception.Message, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π·Π°ΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ ΡΠΎΡΠΊΠΎΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, «Π’Π°Π±Π»ΠΈΡΠ° ΠΆΡΡΠ½Π°Π»Π° ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ»Π½Π΅Π½Π°.» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ ΡΡΡΠΎΠΊΠΎΠΉ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅
Π‘ΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌΠΎΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΡΡΡ ΠΈΠ· ΡΠ²ΠΎΠΉΡΡΠ²Π° Exception.Message ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ ΠΈΠ· ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ»Π°ΡΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, Π²Ρ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°Π΅ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²Ρ Exception.Message, ΠΏΠ΅ΡΠ΅Π΄Π°Π² ΡΡΡΠΎΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ message ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ.
ΠΠ»Ρ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΡΡΠΎΠΊΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠ΅ΡΡΡΡΠΎΠ² Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ . Π‘Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΎ Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠΎΠΊ ΡΠΌ. Π² ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΠ°ΡΡΡΡ :
ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΡΠ²ΠΎΠΉΡΡΠ² Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ (ΠΊΡΠΎΠΌΠ΅ ΡΡΡΠΎΠΊΠΈ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ) Π²ΠΊΠ»ΡΡΠ°ΠΉΡΠ΅ Π² ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠ΅ΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ FileNotFoundException ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ FileName.
Π Π°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² throw Π΄Π»Ρ ΡΠ΄ΠΎΠ±Π½ΠΎΠΉ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΠ΅ΠΊΠ°
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΠΏΠΎΡΡΡΠΎΠΈΡΠ΅Π»Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
ΠΠ±ΡΡΠ½ΠΎ ΠΊΠ»Π°ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅Ρ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΡ ΡΠ²ΠΎΠ΅ΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠ΅ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΡΠ΅ΠΌ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠΈΠ΅ Π΅Π³ΠΎ. ΠΡΠΈΠΌΠ΅Ρ:
Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π»ΡΡΡΠ΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠΎΠΌ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ. Π ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊΠ»Π°ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΡ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ArgumentException.
ΠΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΈΠ·-Π·Π° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ
ΠΡΠ·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΠΎΠ±ΠΎΡΠ½ΡΠ΅ ΡΡΡΠ΅ΠΊΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΊΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅Ρ Π΄Π΅Π½ΡΠ³ΠΈ, ΡΠΏΠΈΡΡΠ²Π°Ρ ΠΈΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ΅ΡΠ° ΠΈ Π²Π½ΠΎΡΡ Π½Π° Π΄ΡΡΠ³ΠΎΠΉ, ΠΈ ΠΏΡΠΈ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΡΡΠ΅Π΄ΡΡΠ² Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅, ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΡΠ΅Π΄ΡΡΠ² ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ.
ΠΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π²ΡΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ Π½Π΅ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ Π΅Π³ΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎΡΡΡ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈ ΡΠ±ΠΎΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅Π½ΡΠ»ΠΎΡΡ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π² ΡΡΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠ΅ Π²ΡΠ΅Ρ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ, Π²ΡΠ΄Π°Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠ΅ΠΉ Π½Π°ΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ², ΠΈ ΠΎΡΠΊΠ°ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠΏΠΈΡΠ°Π½ΠΈΡ ΡΡΠ΅Π΄ΡΡΠ².
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ throw Π΄Π»Ρ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΡΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²ΡΠ·ΡΠ²Π°ΡΡΠΈΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΡΡ ΠΏΡΠΈΡΠΈΠ½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½Π΅ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡ ΠΊ ΡΠ²ΠΎΠΉΡΡΠ²Ρ InnerException. ΠΠ»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΄Π°ΡΠ° Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ: