Я хочу, чтобы исключить пользовательское исключение из блока catch, то есть всякий раз, когда возникает какое-либо исключение, он должен поймать блок 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;
}
}
Любые намеки на вышеупомянутую проблему очень ценятся. Заранее спасибо.
«но получение ошибки» слишком расплывчато для нас, чтобы помочь вам. Когда вы получаете ошибку - во время компиляции или времени выполнения? Если это во время выполнения, это, по-видимому, потому, что ничего не ловит «CustomException», которое вы бросаете ... –
@ Jin Skeet, отредактированный в соответствии с вашими сомнениями. – Anand
Ваше редактирование показывает, что вы ловили «CustomException», если это было выбрано в блоке 'try', но вы выбрасываете его из блока' catch' ниже ..., что новое исключение не будет захвачено блоком catch над ним. Непонятно, что вы хотите здесь сделать - вы хотите, чтобы он выбрал «CustomException» или нет? –