Custom Exception without new throw in .NET -


i not sure if @ possible. (i think should). possible catch customexception without throwing new 1 follows?

        try         {             //some logic throws exception         }         catch (exception)         {             throw new customexception();         } 

what have follows:

        try         {             //some logic throws exception         }         catch (customexception)         {             // handles exception         } 

i have tried above not catching customexception directly. have "throw new customexception()" not ideal. doing wrong?

my custom exception class looks follows:

 [serializable]     public class customexception : exception     {         public customexception()             : base() { }          public customexception(string message)             : base(message) { }          public customexception(string format, params object[] args)             : base(string.format(format, args)) { }          public customexception(string message, exception innerexception)             : base(message, innerexception) { }          public customexception(string format, exception innerexception, params object[] args)             : base(string.format(format, args), innerexception) { }          protected customexception(serializationinfo info, streamingcontext context)             : base(info, context) { }     } 

thanks,

the catch clause not automatically convert exceptions, not way works. filter exception gets thrown in try clause. using

catch (customexception e) { } 

you handling only customexception instances or instances of derived exception clasess - in other words catch clause executed if try block throws of those. so, if instance filenotfoundexception gets thrown, catch clause not executed , code result in unhandled filenotfoundexception.

if intention make code throw customexception possible exceptions might occur in try block, need catch of them. general catch block you:

catch (exception e) // catches exceptions of type {     throw new customexception(e.message, e); } 

note pass original exception in customexception constructor (message optionally reused, may put own). omitted very important practice, because passing inner exception have complete stack-trace in logs, or better information problem when debugging.


Comments

Popular posts from this blog

c# - DetailsView in ASP.Net - How to add another column on the side/add a control in each row? -

javascript - firefox memory leak -

Trying to import CSV file to a SQL Server database using asp.net and c# - can't find what I'm missing -