KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Is there a way, how to get currently thrown exception (if exists)? I would like reduce amount of code and apply some reuse for task looks like: Exception thrownException = null; try { // some code with 3rd party classes, which can throw unexpected exceptions } catch( Exception exc ) { thrownException = exc; LogException( exc ); } finally { if ( null == thrownException ) { // some code } else { // some code } } and replace it with this code: using( ExceptionHelper.LogException() ) { // some code with 3rd party classes, which can throw unexpected exceptions } using( new ExceptionHelper { ExceptionAction = ()=> /*some cleaning code*/ } ) { // some code with 3rd party classes, which can throw unexpected exceptions } public class ExceptiohHelper : IDisposable { public static ExceptionHelper LogException() { return new ExceptionHelper(); } public Action SuccessfulAction {get; set;} public Action ExceptionAction {get; set;} public void Dispose() { Action action; Exception thrownException = TheMethodIDontKnow(); if ( null != thrownException ) { LogException( thrownException ); action = this.ExceptionAction; } else { action = this.SuccessfulAction; } if ( null != action ) { action(); } } } Is this scenario posible? Thanks
Tags (comma-separated)
Save Edits
Cancel