C# 使用try/catch设置布尔变量是个好主意吗?
我有一个简单的例子,在这种情况下我的try-catch有用吗?我的意思是可以使用try/catch将布尔值设置为C# 使用try/catch设置布尔变量是个好主意吗?,c#,try-catch,C#,Try Catch,我有一个简单的例子,在这种情况下我的try-catch有用吗?我的意思是可以使用try/catch将布尔值设置为false foreach (string file in filePaths) { bool err = false; BitmapImage img = null; try { img = new BitmapImage(new System.Uri(file)); } catch { err = true;
false
foreach (string file in filePaths) {
bool err = false;
BitmapImage img = null;
try {
img = new BitmapImage(new System.Uri(file));
} catch {
err = true;
}
if(!err) {
listPhotos.Add(new PhotoElement(img));
}
}
当然,你当然可以这样做。但是,可以通过两种方式改进此代码:
- 将用于将图像添加到列表中的代码移动到
。没有理由把它放在外面try
/try
catch
- 添加一些报告或其他方法来处理错误。例如,向列表中添加一些占位符图像
catch
捕获所有错误,这些错误可能会掩盖代码中的问题
foreach (string file in filePaths) {
try {
listPhotos.Add(new BitmapImage(new System.Uri(file)));
} catch (FileNotFoundException fnf) {
log.Warning("File not found: {0}", fnf);
listPhotos.Add(ImageNotFoundBitmap);
}
}
可以吗?当然-但你绝对不知道为什么会有错误-这通常比知道是否有错误更重要。所以在这种情况下,不,我不会说它特别有用。