Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4579624
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 21, 20262026-05-21T20:40:06+00:00 2026-05-21T20:40:06+00:00

I know this is not the way to do it, and it isn’t clean

  • 0

I know this is not the way to do it, and it isn’t clean at all. I just wonder if it’s possible.

If I have a class with a bunch of methods

public class Foo {

   methodA() {}

   methodB() {}

   methodC() {}

}

Is it possible to catch all exceptions that could possibly occur without having to write a try/catch in each method?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-21T20:40:07+00:00Added an answer on May 21, 2026 at 8:40 pm

    Yes it is. The simplest way would be a Attribute for this class like this one:

    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
    public class HandleErrorAttribute : FilterAttribute, IExceptionFilter
    {
    
        public void OnException(ExceptionContext filterContext)
        {
            if (filterContext == null)
            {
                throw new ArgumentNullException("filterContext");
            }
    
            if (filterContext.ExceptionHandled)
            {
                return;
            }
    
            var exception = filterContext.Exception;
    
            // that need to be your current request object. In this case I use a custom one so I must fetch it from the items collection of the current request, where I had stored it before.
            var request = filterContext.HttpContext.Items[Request.RequestKey] as Request;
    
            if (request != null)
            {
                // overwrite ErrorResponse with a response object of your choice or write directly to the filterContext.HttpContext.Response
                var errorResponse = new ErrorResponse(request, exception); 
                errorResponse.Write(filterContext.HttpContext.Response);
                filterContext.ExceptionHandled = true;
            }
        }
    }
    
    // Or a just slightly modified version of the default ASP.Net MVC HandleError Attribute
    [AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
        public class CustomHandleErrorAttribute : FilterAttribute, IExceptionFilter
        {
            // Fields
            private const string _defaultView = "Error";
            private string _master;
            private readonly object _typeId = new object();
            private string _view;
    
            // Methods
            public virtual void OnException(ExceptionContext filterContext)
            {
                if (filterContext == null)
                {
                    throw new ArgumentNullException("filterContext");
                }
                if (!filterContext.IsChildAction && (!filterContext.ExceptionHandled && filterContext.HttpContext.IsCustomErrorEnabled))
                {
                    Exception innerException = filterContext.Exception;
                    if ((new HttpException(null, innerException).GetHttpCode() == 500))
                    {
                        string controllerName = (string)filterContext.RouteData.Values["controller"];
                        string actionName = (string)filterContext.RouteData.Values["action"];
                        HandleErrorInfo model = new HandleErrorInfo(filterContext.Exception, controllerName, actionName);
                        ViewResult result = new ViewResult();
                        result.ViewName = this.View;
                        result.MasterName = this.Master;
                        result.ViewData = new ViewDataDictionary<HandleErrorInfo>(model);
                        result.TempData = filterContext.Controller.TempData;
                        filterContext.Result = result;
                        filterContext.ExceptionHandled = true;
                        filterContext.HttpContext.Response.Clear();
                        filterContext.HttpContext.Response.StatusCode = 500;
                        filterContext.HttpContext.Response.TrySkipIisCustomErrors = true;
                    }
                }
            }
    
            public string Master
            {
                get
                {
                    return (this._master ?? string.Empty);
                }
                set
                {
                    this._master = value;
                }
            }
    
            public override object TypeId
            {
                get
                {
                    return this._typeId;
                }
            }
    
            public string View
            {
                get
                {
                    if (string.IsNullOrEmpty(this._view))
                    {
                        return "Error";
                    }
                    return this._view;
                }
                set
                {
                    this._view = value;
                }
            }
        }
    

    Usage (untested cause I used it in context of controller that already implement all required interfaces)

    [HandleErrorAttribute]
    public class Foo : IExceptionFilter // (I am not sure about this one IActionFilter)
    {
    
        public void MethodA() 
        {
            // body
        }
    
        public void MethodB() 
        {
            // body
        }
    
        public void MethodC()
        {
            // body
        }
    
    }
    

    Or you can do something like this:

    public class ExecuteHelper
    {
        public static void Catch(Action action)
        {
            try
            {
                action();
            }
            catch (Exception ex)
            {
                // Do what you want
            }
        }
    }
    

    And use it in a Function body:

    public void Foo(string something)
    {
        ExecuteHelper.Catch(() =>
        {
            // Do something with something or without something
        });
    }
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I know this is not programming related, but I have a scenario. Each video
I know this is possible but I'm not really sure where to start. Has
I know this isn't a unique issue but I've not had much luck finding
I know this is a bit strange and believe me it's not the way
I know this is not programming directly, but it's regarding a development workstation I'm
I know this is not a real programming question. But, it relates to programming
Hey. I know this is not a 'refactor my code' site but I made
I know this question is not really important.. however I've been wondering: Which of
I know this probably really simple but Im not sure what im doing wrong...
I know this sort of code is not best practice, but nevertheless in certain

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.