我想基於傳遞給方法的異常類型參數拋出異常。基於類型參數實例化新對象
這是我有這麼遠,但我不希望指定每種例外情況:
public void ThrowException<T>(string message = "") where T : SystemException, new()
{
if (ConditionMet)
{
if(typeof(T) is NullReferenceException)
throw new NullReferenceException(message);
if (typeof(T) is FileNotFoundException)
throw new FileNotFoundException(message);
throw new SystemException(message);
}
}
理想我想這樣做new T(message)
給我的SystemException
基本類型我會認爲這是可能的。
不能完成,但也有變通方法。看到這裏:http://stackoverflow.com/questions/7772414/can-i-use-generic-constraints-to-enable-a-parameterized-constructor/7772426#7772426 –
另外,請注意,它是不是很好的做法在用戶代碼中拋出異常,例如NullReferenceException。 –