asp.net - Showing the error "A previous catch clause already catches all exceptions of this or a super type `System.Exception' " in my C# code -


showing error "a previous catch clause catch clause catches exceptions of or super type `system.exception' " in c# code

using system;    class test {      static void main()  {          try{              int a=10,b=0,c=0;c=a/b ;              console.writeline(c);         }            catch(system.exception e) {              console.writeline(e.message);          }          catch(system.dividebyzeroexception ex) {               console.writeline(ex.message);          }      }  } 

exception handlers processed in order top bottom , first matching exception handler invoked. because first handler catches system.exception, , exceptions derive system.exception, it'll catch everything, , second handler never execute.

the best practice multiple exception handlers order them specific general, this:

using system;    class test {      static void main()  {          try{              int a=10,b=0,c=0;c=a/b ;              console.writeline(c);         }            catch(system.dividebyzeroexception ex) {               console.writeline(ex.message);          }          catch(system.exception e) {              console.writeline(e.message);          }      }  } 

if absolutely positively have handle system.exception first (although can't think of reason why) write exception filter allow dividebyzero through, this:

using system;    class test {      static void main()  {          try{              int a=10,b=0,c=0;c=a/b ;              console.writeline(c);         }            catch(system.exception e)          when (!(e dividebyzeroexception)){              console.writeline(e.message);          }          catch(system.dividebyzeroexception ex) {               console.writeline(ex.message);          }      }  } 

note: per msdn, you should avoid catching general exception types system.exception.


Comments

Popular posts from this blog

python Tkinter Capturing keyboard events save as one single string -

android - InAppBilling registering BroadcastReceiver in AndroidManifest -

javascript - Z-index in d3.js -