此代码非常有效。没问题。
问题是我想在它周围放一个try catch块。这就是我想出的。可以任何建议更多的捕获?或者它的方式很好吗?
String strFileLine1 = "This is a folder that will be used by the Virtual Flashcard program.";
String strFileLine2 = "Please do not delete.";
String myFilePath;
.
.
.
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.FileName = "FlashCard.txt";
saveFile.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFile.ShowDialog();
myFilePath = Path.GetDirectoryName(saveFile.FileName);
label2.Text = myFilePath;
try
{
using (StreamWriter fileWrite = new StreamWriter(saveFile.FileName))
{
fileWrite.WriteLine(strFileLine1);
fileWrite.WriteLine(strFileLine2);
}
}
catch (Exception ex)
{
MessageBox.Show("There is a problem");
}
答案 0 :(得分:2)
总结这个讨论。来自@Erresen,“你目前正在抓住当前捕获的所有异常。”
如果您不希望/需要根据收到的特定异常执行某些操作,这很好。
然而,正如@Johny Mopp所提到的,ObjectDisposedException和IOException是潜在的异常。也许,如果您有IOException,您将需要创建一个警报并通知用户该方法无法访问该文件,它被阻止或等待一段时间再次尝试该文件。但是对于ObjectDisposedException,您唯一的选择可能是通知用户该操作是不可能的。因此,您需要单独捕获异常并适当地处理它们。
答案 1 :(得分:0)
感谢那些给予建设性批评和帮助的人。对其他人......
以下是我提出的代码
SaveFileDialog saveFile = new SaveFileDialog();
saveFile.FileName = "FlashCard.txt";
saveFile.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
saveFile.ShowDialog();
myFilePath = Path.GetDirectoryName(saveFile.FileName);
label2.Text = myFilePath;
try
{
using (StreamWriter fileWrite = new StreamWriter(saveFile.FileName))
{
fileWrite.WriteLine(pushUp.StrFileLine1);
fileWrite.WriteLine(pushUp.StrFileLine2);
}
}
catch (IOException ex)
{
MessageBox.Show(pushUp.StrIOExcepion);
}
catch (ObjectDisposedException ex)
{
MessageBox.Show(pushUp.StrObjectDisposedException);
}
catch (Exception ex)
{
MessageBox.Show(pushUp.StrException);
}