ファイルを開くために 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 からのイベントを処理する以下のコードに何か問題があるに違いありません。いくつかのメッセージボックスにもかかわらず、何も表示されないからです! 私は何を間違えたの!? ヘルプは貴重です!
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);
}
}
}