当“ throw new”旁边发生异常时,还有其他方法可以查看程序的行为吗?

时间:2019-02-17 10:38:01

标签: c# exception exception-handling try-catch

我正在用C#编写一个例程,该例程使用File.ReadAllLines函数从文本文件中读取行。代码如下:

private void ReadFromLibrary()
{
 string[] ReadBuffer = new string[] { };

 try
        {
            ReadBuffer = File.ReadAllLines("Library.txt");
        }

 catch (FileLoadException F)
        {
            MessageBoxButtons MB = MessageBoxButtons.OK;
            MessageBoxIcon MI = MessageBoxIcon.Error;
            MessageBox.Show(F.Message, "Error!", MB, MI);
        }
}

我想看看发生FileLoadException异常时此函数将如何运行。我不认为手动更改计算机的状态,因此发生此异常是一个好主意,我知道的唯一替代方法是从文件读取后插入throw new FileLoadException

是否还有其他方法可以获取相同的结果?我没有发现使用throw new有什么问题,但是我想知道是否可以用其他方式做。

1 个答案:

答案 0 :(得分:0)

如杰里米所说,

  

给类构造函数一个IFile接口参数。然后在一个单位   测试ReadFromLibrary并模拟File.ReadAllLines方法以抛出一个   FileLoadException,然后将模拟的IFile传递给构造函数   调用ReadFromLibrary方法。