我需要有人告诉我这张图片的含义:
我试图了解它并创建了一些测试代码。我在构造函数中添加了try
,catch
和finally
块,效果非常好!
那有什么不对?
(我试过的源代码:只是一个测试)
class Numbers
{
public Numbers()
{
try
{
int[] array = new int[5];
for (int i = 0; i < 10; i++)
{
array[i] = i;
// here obviously an IndexOutOfRangeException will be thrown.
}
}
catch
{
MessageBox.Show("Exception Thrown");
}
}
}
答案 0 :(得分:1)
提示说,在构造函数中不能编写任何可能产生异常的代码是非常理想的,因为这可能导致代码内部混乱,难以消耗类型和因为这不是一种常见的做法(在大多数情况下避免使用这种代码相当容易),您的类型的消费者不会期望来自此实例的那种行为。
即使在你的情况下,在这里玩恶,我可以说你的try/catch/finally
并未涵盖所有可能的情况,因为StackOverflow
或MemoryOverflow
之类的例外无法被捕获。