Я хотел бы иметь метод, который получает тип исключения (т. Е. Передаваемый параметр должен быть классом, который реализует System.Exception).Как передать тип исключения в качестве параметра?
Каков правильный способ сделать это?
Ниже не то, что я хочу:
public void SetException(Exception e)
... что требуется экземпляр исключения. Я хочу передать тип исключения, как InvalidProgramException
Edit: Для дальнейшего объяснить, что я хочу делать, я хочу, чтобы иметь возможность отслеживать, сколько раз я видел исключение каждого типа раньше. Поэтому я хочу, чтобы иметь возможность сделать что-то вроде:
Dictionary<ExceptionTypeThing, int> ExceptionCounts;
public void ExceptionSeen(ExceptionTypeThing e)
{
// Assume initialization
ExceptionCounts[e]++;
}
ExceptionSeen(InvalidProgramException);
Я не хочу, чтобы передать экземпляр исключения, а отслеживать его тип исключения.
Что вы хотите сделать? вы уверены, что вам это нужно? – Adrian
Пожалуйста, объясните, что вы на самом деле пытаетесь сделать. Передача типа исключения является тривиальной (например,просто введите аргумент типа 'Type', а не type' Exception'), но неясно, относится ли это к вашей фактической потребности. Обратитесь к http://stackoverflow.com/help/how-to-ask за советом о том, как представить свой вопрос ясным и ответственным способом. –
Существует несколько способов сделать это, но «лучший» способ зависит от того, как вы планируете использовать тип исключения внутри метода. Можете ли вы объяснить это более подробно? –