Я пытаюсь использовать перечисление в конструкторе класса PowerShell, где на перечисление ссылается переменная в вызове. Эта переменная может быть заполнена чем-то, что не разрешается правильно, и, конечно, я хочу перехватить это. Учитывая этот код
Enum pxPathType {
FileSystem_Folder = 0
FileSystem_File = 1
Registry_Key = 2
Registry_Property = 3
}
class PxPath {
# Constructor
PxPath ([string]$path, [pxPathType]$pathType) {
}
}
$pathType = 'FileSystem_Folders'
$testPath = [PxPath]::New("C:\", [pxPathType]::$pathType)
, я получу очень обобщенное c исключение метода. Можно ли как-то выдать мое собственное исключение, когда я не передаю допустимое перечисление? Или это «правильный» способ сделать это, чтобы заранее проверить перечисление чем-то вроде if ([enum]::IsDefined(([pxPathType]), $pathType)) {
Мне не очень нравится этот вариант, потому что могут быть области, где мне понадобится экземпляр класс PxPath, и так будет, много дублирования проверки. Я предпочел бы сделать класс самодостаточным и выбросить исключение. Я думаю. ;)