Так просто из любопытства я хотел посмотреть, что было особенным в классе исключений, что позволило использовать его с ключевым словом Throw
, а стандартный класс - нет.
Все, что я обнаружил, это то, что класс Exception реализовал следующие
public class Exception : System.Object, System.Runtime.Serialization.ISerializable, System.Runtime.InteropServices._Exception
{
}
Итак, я попытался реализовать те же интерфейсы и попытался создать собственное собственное исключение, которое не получило от System.Exception
безрезультатно. Мне просто сказали, что
Тип, пойманный или выброшенный, должен быть получен из
System.Exception
Так есть ли какая-то конкретная причина для этого? Я предполагаю, что в управляемых языках так мало вариантов, как представляется, произвольно.