try
{
if (!File.Exists("File.Ext"))
throw new FileNotFoundException();
}
catch(FileNotFoundException e)
{
// your message here.
}
在写这篇文章的时候,我找到了上面的代码,认为必须有一种方法在一个块中完成
我正在尝试用检查错误读取bmp
Bitmap b2;
b2 = new Bitmap("g:\\btmp1.bmp");
因此,如果将文件分配给“b2”时出现问题,则会出现错误
string notExst = "";
Bitmap b2;
try
{
b2 = new Bitmap("g:\\ba.bmp");
}
catch (FileNotFoundException e)
{
throw e.Tostring(); \\ would it be ok to
\\ msgbox.show(e.Tostring()) insted of throw ?
}
我想我的Try Catch中出现了语法错误,这是正确的方法吗? 感谢。
编辑后 乔伊,我不明白你的答案,我希望得到通知,并相应地打破方法 而不是暗恋
最后
public bool TryGetBitMap(string FilePath)
{
string NotExstMsg = "The file: " + FilePath + "Could Not Be Found!";
bool exst = false;
if (!File.Exists(FilePath))
MessageBox.Show(NotExstMsg);
else exst = true;
return exst;
}
private void ButScreenCupt_Click(object sender, EventArgs e)
{
string FilePath1 = "g:\\a.bmp";
string FilePath2 = "g:\\b.bmp";
Bitmap b1, b2;
bool isSuccess1 = TryGetBitMap(FilePath1);
bool isSuccess2 = TryGetBitMap(FilePath2);
if (isSuccess1 && isSuccess2)
{
b1 = new Bitmap(FilePath1);
pictureBox1.Image = b1;
b2 = new Bitmap(FilePath2);
pictureBox2.Image = b2;
dd = ComparingImages.Compare(b1, b2);
MessageBox.Show(dd.ToString());
}
}
答案 0 :(得分:2)
Bitmap b2;
try
{
b2 = new Bitmap("g:\\ba.bmp");
}
catch (FileNotFoundException notExst)
{
//enter your message here
}
无需在catch中抛出异常。
答案 1 :(得分:0)
您可以使用TryGet模式构建自己的方法。
bool isSuccess = TryGetBitMap("g:\\ba.bmp",b2);
答案 2 :(得分:0)
不要声明 notExst 变量。
答案 3 :(得分:0)
正如@Jaguar所提到的,如果Bitmap类抛出了一个FileNotFoundException,你可以捕获它。 异常处理会导致调用堆栈展开。如果您可以使用if-else语句检查文件是否存在,那将是更可取的。