我开发了一个应用程序来为我的项目执行一些后端文件操作。
应用程序将编写一个二进制文件,并在其中执行某些操作,这会导致创建另一个文件。 然后我会读取输出文件来更新我的数据库。
例如,考虑我会写一个ABC.bin
文件,输出文件是XYZ.bin
所有上述行动都将在10毫秒内完成。并且我将继续相同的过程多次,例如100次。
现在,问题是我遇到了一些例外情况,例如找不到文件,从源代码运行我的应用程序时拒绝访问。
但是在将应用程序作为可执行文件(.exe)后,我没有得到相同的异常。
两种情况都发生了什么?为什么在将其作为可执行文件后仍然没有发生同样的事情?
答案 0 :(得分:1)
你可以做的事情很少:
如果您只是在调试器下看到异常,而不是在运行独立可执行文件时,请检查Visual Studio中的异常设置。转到Debug -> Exceptions ...
并确保取消选中Thrown
中的所有内容
调查在开始复制之前使用File.Exists方法查询文件是否存在会更快(这当然只能解决FileNotFoundException
)
在try-catch块中包装复制循环,而不是包装循环内部的代码。像这样:
List<string> fileNames = new List<string>() { "file1.txt", "file2.txt", ... };
int i = 0;
try
{
for (i = 0; i < fileNames.Count; i++)
// do copying here
}
catch (Exception ex)
{
// log exception
}
// You can decide if to return to copying rest of the files here, from i+1
这样做是为了避免为每个文件输入和退出try
块。