是否有方法内联初始化异常's数据

本文关键字:数据 异常 有方法 初始化 是否 | 更新日期: 2023-09-27 18:02:59

我想在不创建异常变量的情况下抛出带有额外数据的异常。像这样:

throw new Exception() { Data.Add("foo", "bar") };

有可能吗?

是否有方法内联初始化异常's数据

看起来你应该可以这样做:

throw new Exception { Data = { { "foo", "bar" } } };

(假设你使用c# 3,它有集合初始化式…)

当然你可以和构造函数参数一起使用

throw new ArgumentException("paramName") { Data = { { "foo", "bar" } } };

遗憾的是,您不能使用对象初始化式来调用这样的方法

它确实有一个parametrized constructor取字符串;

  throw new Exception("Hello World");

问题不是很清楚(即什么是数据的类型…)如果你的意思是你需要把一些消息放入Exception:

throw new Exception (Data.Add("foo", "bar").ToString());