Простое объявление исключений с использованием exception
ограничено во многих отношениях.Если вы хотите использовать другие функции стандартных исключений .NET (например, внутреннее исключение), вы можете объявить исключение как класс:
open System
type FooException(message:string, innerException:Exception) =
inherit Exception(message, innerException)
Вы также можете предоставить перегруженные конструкторы, например, если хотите использоватьnull
как значение по умолчанию для InnerException
.Исключение можно вызвать как обычное исключение .NET, используя raise
:
raise (new FooException(message, e))