Какой метод фабрики в System.Linq.Expressions.Expression
следует вызвать для создания дерева выражений, точнее, экземпляра CatchBlock
, который представляет catch
в следующем коде C #:
try {
// ...
} catch {
// ...
}
Все перегрузки метода Catch , по-видимому, требуют либо типа исключения - эквивалент этого:
catch (Exception) {
// ...
}
и / или ParameterExpression
который будет связан с исключением - эквивалент этого:
catch (Exception ex) {
// ...
}
Передача null
в первый аргумент (и приведение к Type
, чтобы избежать двусмысленности):
// using static System.Linq.Expressions.Expression
Catch((Type)null, Constant(true));
вызывает ArgumentNullException .
Метод MakeCatchBlock имеет такое же поведение