构造函数内的try/catch块
问题描述:
在构造函数中设置try/catch块是不是很糟糕的编程习惯?或者,只要我们的程序优雅地处理类型初始化异常,它就没有什么区别。构造函数内的try/catch块
在C#中,如果构造函数中有任何异常,框架总是抛出typeinitilizer异常。
感谢, Shamika
答
System.TypeInitializationException
当静态构造函数抛出异常,而不是实例构造函数抛出。异常通常在实例构造函数中抛出。除此之外,没有什么比它在任何其他地方“错误”更多的东西了,处理可以正确恢复的异常,并允许那些不能冒泡的异常。
感谢对System.TypeInitializationException和是的解释,在我的情况下,它确实是一个静态构造函数。 – Shamika 2010-02-18 07:37:14
@Shamika:尽管如此,同样的答案适用;如果你能从异常中恢复,那就抓住它。如果你不能,那就不要。还要注意,静态成员初始化中遇到的异常无法被捕获(它们将抛出一个'TypeInitializationException')。 – 2010-02-18 13:39:32
问题,围绕对构造函数或构造函数内部的调用使用try catch会更好吗? – 2016-10-20 05:51:29