当我使用 Try/Catch 打开文件时,当我尝试打开不存在的文件时,程序会显示一条内置消息,而不是我在 Catch 部分中的消息。出了什么问题,我错过了什么?
public void ReadFromFile(MainFrame obj, string filePath)
{
try
{
filestream = new FileStream(filePath, FileMode.Open);
BinaryFormatter b = new BinaryFormatter();
var animals2 = (List<Animal>)b.Deserialize(filestream);
foreach (Animal animal in animals2)
{
AddAnimalToList(animal);
obj.UppdateListOfRegistredAnimals(animal.ID, animal.Name, animal.Age, animal.Gender);
}
obj.UpdateId(animals.Count());
}
catch
{
MessageBox.Show("Test", "Test", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
filestream.Close();
}
}
编辑:我发现内置消息的原因是在上面的代码之前的某个地方!下面处理来自 openFileDialog 的事件的代码一定有问题,因为尽管有多个消息框,但未显示!我做错了什么!?帮助是preciated!
private void menuFileOpen_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog.
string file = openFileDialog1.FileName;
if (result == DialogResult.OK)
{
MessageBox.Show("TEST", "Test", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
try
{
MessageBox.Show("TEST", "Test", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
motelManager.ReadFromFile(this, file); // Smart lösning!!
}
catch (FileNotFoundException)
{
MessageBox.Show("Error message", "Test", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}