为什么我们在使用New操作时不添加try catch

HSN*_*HSN 4 c# exception-handling

在C#和C++中,没有人对new运营商使用异常处理,原因是什么?是否保证通话始终会成功?

Ree*_*sey 9

是否保证通话始终会成功?

不,这不能保证.

话虽如此,一般来说,处理您可以实际执行某些操作的异常只是一个好主意. 按照惯例,以最小化异常的方式设计对象构造是个好主意.话虽如此,这并不总是可行的,而且很多情况下,调用new Foo()很容易引发你可能想要捕获的异常.

例如,如果您尝试这样做,则可以保证引发异常,因为这比单个维度中的数组中允许的最大项目数更长(即使使用gcAllowVeryLargeObjectsset):

var willCauseException = new double[int.MaxValue];
Run Code Online (Sandbox Code Playgroud)