C # рдореЗрдВ рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ рдЕрдкрд╡рд╛рдж

рддреНрд░реБрдЯрд┐рдкреВрд░реНрдг (рдЕрд╕рд╛рдзрд╛рд░рдг рд╡рд╛рд▓реЗ рд╕рд╣рд┐рдд) рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд░рдЪрдирд╛рддреНрдордХ рдЕрдкрд╡рд╛рдж рдПрдХ рдкреНрд░рдореБрдЦ рддрдВрддреНрд░ рд╣реИрдВред рдиреАрдЪреЗ рд╕реВрдЪреАрдмрджреНрдз рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ рдЬреЛ C # рдФрд░, рдЕрдзрд┐рдХ рдореЛрдЯреЗ рддреМрд░ рдкрд░, .NET рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рд╕рдордЧреНрд░ рдХреЛрдб рдЧреБрдгрд╡рддреНрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЦреБрдж рдХреА рдХреНрд▓рд╛рд╕ ред рдЕрдкрд╡рд╛рдж рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЖрдкрдХреА рдЕрдкрдиреА рд╢реНрд░реЗрдгреА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ Exception , рдФрд░ рд╕реАрдзреЗ Exception рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд╣реАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЗ рдЕрдкрдиреЗ рд╣реИрдВрдбрд▓рд░ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдФрд░ рдЖрдкрдХреЗ рдХреЛрдб рдФрд░ .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рдХреЛрдб рджреНрд╡рд╛рд░рд╛ рдлреЗрдВрдХреЗ рдЧрдП рдЕрдкрд╡рд╛рджреЛрдВ рдХреА рдЯреНрд░реИрдХрд┐рдВрдЧ рдФрд░ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

рдЕрд▓рдЧ рдЦреЗрдд ред Message рдлрд╝реАрд▓реНрдб рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рдХреНрд░рдордмрджреНрдз рдФрд░ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝реАрд▓реНрдб рдмрдирд╛рдПрдБред рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ Message рдореЗрдВ JSON рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдЯрд┐рд▓ Message рдбреЗрдЯрд╛ рдХреЛ рдкреИрдХ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдЖрдХрд░реНрд╖рдХ рд▓рдЧрддрд╛ рд╣реИ, рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдХрднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдиреНрдХреЛрдбрд┐рдВрдЧ, рд╕реНрдерд╛рдиреАрдпрдХрд░рдг рдФрд░ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди рдЦрдкрдд рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рд▓реЙрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ ред рдЬрдм рднреА рд╣реИрдВрдбрд▓рд░ Exception.ToString(); рдХреЙрд▓ рдХрд░рдХреЗ рдПрдХ Exception рдХреЛ рдкрдХрдбрд╝рддрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕рдВрджреЗрд╢ рджрд░реНрдЬ рдХрд░реЗрдВ Exception.ToString(); рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдбреАрдмрдЧ рдХрд░рддреЗ рд╕рдордп рдпрд╣ рдЯреНрд░реИрдХрд┐рдВрдЧ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

рд╕рдЯреАрдХ рд╡рд░реНрдЧ ред рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╕реЗ рдХрдо рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рд╣рд╛рд░реНрдб-рдЯреВ-рдбрд┐рдЯреЗрдХреНрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдХрд╛рд░рдг рдмрди рд╕рдХрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

 public class SimpleClass { public static string DoSomething() { try { return SimpleLibrary.ReportStatus(); } catch (Exception) { return "Failure 1"; } } } public class SimpleLibrary { public static string ReportStatus() { return String.Format("Success {0}.", 0); } } 


рдпрджрд┐ рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ SimpleClass рдФрд░ SimpleClass SimpleLibrary рдХрд╛ рдХреЛрдб рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЕрд╕реЗрдВрдмрд▓реА рдореЗрдВ рд╣реИ, рддреЛ рдпрджрд┐ рджреЛрдиреЛрдВ рдЕрд╕реЗрдВрдмрд▓реА рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдХреЛрдб рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрджреЗрд╢ "рд╕рдХреНрд╕реЗрд╕ 0" рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЕрдЧрд░ SimpleLibrary рдХреНрд▓рд╛рд╕ рдХреЗ рд╕рд╛рде рдЕрд╕реЗрдВрдмрд▓реА рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдб рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕рдВрджреЗрд╢ "рд╡рд┐рдлрд▓рддрд╛ 1" рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛, рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ ReportStatus рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реБрдИред рдЕрддреНрдпрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рдХрд╛рд░рдг рд╕рдорд╕реНрдпрд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред рд▓рд╛рдЗрди рдХреЛ рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб ArgumentNullException рдФрд░ FormatException рдлреЗрдВрдХрддрд╛ FormatException , рдЗрд╕рд▓рд┐рдП рдпреЗ рдЕрдкрд╡рд╛рдж рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдлрд┐рд░ рддреНрд░реБрдЯрд┐ рдХрд╛ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ - рдпрд╣ FileNotFoundException рдЕрдкрд╡рд╛рдж рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ SimpleLibrary рд╡рд░реНрдЧ рдХреЗ рдЕрднрд╛рд╡ рдпрд╛ рдЧрд▓рдд рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рдХрд╛рд░рдгред

рдкрд░реНрдпрд╛рдкреНрдд рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг ред рд╣рдореЗрд╢рд╛ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╕реВрдЪрдирд╛рддреНрдордХ рд░реВрдк рд╕реЗ рд╕рдВрднрд╛рд▓реЗрдВред рдХреЛрдб рджреЗрдЦреЗрдВ

 try { DoSomething(); } catch (SomeException) { // TODO: ... } 


рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЫреБрдкрд╛рддрд╛ рд╣реИ, рдбрд┐рдмрдЧрд┐рдВрдЧ рдпрд╛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЙрдирдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

finally рдмреНрд▓реЙрдХ рдореЗрдВ рд╕рдорд╛рд╢реЛрдзрди ред finally рдмреНрд▓реЙрдХ рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдВред рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

 void WorkWithFile(string filename) { try { using (StreamWriter sw = new StreamWriter(filename)) { // TODO: Do something with temporary file } File.Delete(filename); } catch (Exception) { File.Delete(filename); throw; } } 


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдбреБрдкреНрд▓рд┐рдХреЗрдЯ рд╣реИред рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ finally рдмреНрд▓реЙрдХ рд╕реЗ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

 void WorkWithFile(string filename) { try { using (StreamWriter sw = new StreamWriter(filename)) { // TODO: Do something with temporary file } } finally { File.Delete(filename); } } 


рдХрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ using рдХрдерди рдХрд╛ using рдХрд░реЗрдВред рдпрд╣ Dispose рдкрджреНрдзрддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рдХреА рдЧрд╛рд░рдВрдЯреА рджреЗрддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп рдХреЛрдИ рдЕрдкрд╡рд╛рдж рд╣реЛред

 using (Font f = new Font("Times New Roman", 12.0f)) { byte charset = f.GdiCharSet; } 


using рдХрдерди рдХрд╛ using рдХрд░рдирд╛ рдПрдХ try/finally рдмреНрд▓реЙрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдХреЙрдореНрдкреИрдХреНрдЯ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИред

 Font f = new Font("Times New Roman", 12.0f); try { byte charset = f.GdiCharSet; } finally { if (f != null) ((IDisposable)f).Dispose(); } 


рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ ред рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрд╡рд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВ рдФрд░ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░рд┐рдЯрд░реНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреЛ - рдЙрд╕рдХрд╛ рдЕрдкрдирд╛ред рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЬреЛ рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдирд╣реАрдВ рдЫреЛрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╕рдВрд╕рд╛рдзрди рдХреА рдХрдореА ред рдпрджрд┐ рдХреЛрдИ рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИ, рддреЛ null рд▓реМрдЯреЗрдВред .NET API рдХреЗ рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рдХрдиреНрд╡реЗрдВрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд╕рдВрд╕рд╛рдзрди рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдкрд╡рд╛рдж рдирд╣реАрдВ рдлреЗрдВрдХрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрдиреНрд╣реЗрдВ null рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рд╕рдВрд╕рд╛рдзрди рд╕рдВрдХрд▓рди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдереЗ рдпрд╛ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЗ рд▓рд┐рдП рджреГрд╢реНрдпрдорд╛рди рдирд╣реАрдВ рд╣реИрдВ, рддреЛ GetManifestResourceStream null рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЬрдЧрд╣ ред рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдЕрдкрд╡рд╛рдж рдХрд╣рд╛рдВ рд╣реБрдЖред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП

 try { // Do something to throw exception } catch (Exception e) { // Do something to handle exception throw e; // Wrong way! throw; // Right way } 


рдХреЙрд▓ throw e; рдорд╛рдорд▓реЗ рдореЗрдВ throw e; рдЕрдкрд╡рд╛рдж рдХрд╣рд╛рдВ рдлреЗрдВрдХрд╛ рдЬрд╛рдПрдЧрд╛ рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдПрдХ рдирдИ рдкрдВрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХреА рдЬрд╛рдПрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдирдпрд╛ рдЕрдкрд╡рд╛рдж рдмрдирд╛рдиреЗ рд╕реЗ рдХреЙрд▓ рд╕реНрдЯреИрдХ рд╕рд╛рдлрд╝ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдПрдХ throw; рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ throw; рдЬреЛ рдореВрд▓ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджреЗрдЧрд╛ред

рдЕрд░реНрде рдЬреЛрдбрд╝рдирд╛ ред рдореВрд▓ рдЕрдкрд╡рд╛рдж рдХреЛ рдХреЗрд╡рд▓ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд░реВрд░рддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдиреЗрдХреНрд╢рди рдХреА рд╡рд┐рдлрд▓рддрд╛ (рд╕реЙрдХреЗрдЯ рддреНрд░реБрдЯрд┐) рдХреЗ рдХрд╛рд░рдг рдХреЗ рдкреНрд░рддрд┐ рдЙрджрд╛рд╕реАрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реНрдпрд╛рдкреНрдд рдЬрд╛рдирдХрд╛рд░реАред

рдХреНрд░рдордмрджреНрдзрддрд╛ред рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ Exception рдмрдирд╛рдПрдВ, рдЬреЛ рд╕реАрд░рд┐рдпрд▓ рдХреЗ рд╕рд╛рде рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рд╣реЛред рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рдХрднреА рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЕрдкрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧрд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡реЗрдм рд╕реЗрд╡рд╛ рдореЗрдВред

 [Serializable] public class SampleSerializableException : Exception { public SampleSerializableException() { } public SampleSerializableException(string message) : base(message) { } public SampleSerializableException(string message, Exception innerException) : base(message, innerException) { } protected SampleSerializableException(SerializationInfo info, StreamingContext context) : base(info, context) { } } 


рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рддрд╛ ред рдорд╛рдирдХ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ рд╕рд╣реА рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИред рддреЛ NewException рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NewException рдпреЗ рдирд┐рд░реНрдорд╛рддрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИрдВ:




MSDN, CodeProject, StackOverflow рдХреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ред

Source: https://habr.com/ru/post/In178805/


All Articles