我们可以从catch块中抛出自定义异常吗?

时间:2014-11-17 06:35:52

标签: c#-4.0 exception-handling custom-exceptions

我想从catch块中抛出一个自定义异常,即,每当发生任何异常时,它应该被catch块捕获并抛出一个自定义异常。我正在尝试使用下面的代码,但在catch块中获取运行时异常为"未处理的异常"。

try{
  ///some error
 }
      catch(Exception e){
    try{
          throw new CustomException("Exception1", e);
        }
    catch(CustomException ce)
       {
        Console.WriteLine("Custom Exception Caught" + ce.StackTrace);

       }
 }


public class CustomException : Exception
 {

   public CustomException : base()
    {
    }

  public CustomException(string message, Exception innerException) : base(message, innerException)
   {
     processError(message, innerException);
   }
 }

 public static void processError(string mgs, Exception e)
  {
   switch(mgs)
    {
     case "Exception1":
        Console.WriteLine("Exception1 caught" + e.StackTrace);
        break;
     case "Exception2":
        Console.WriteLine("Exception2 caught" + e.StackTrace);
        break;
     default:
        Console.WriteLine("Some other Exception caught" + e.StackTrace);
        break;
       }
    }

对上述问题的任何暗示都非常感谢。提前谢谢。

1 个答案:

答案 0 :(得分:1)

是的,只需写下

throws new ExceptionType(parameter);

其中ExceptionType是自定义异常类的名称。