【发布时间】:2016-05-30 07:41:42
【问题描述】:
我最近遇到了这个问题,没有意义。
以下sn-p是真实的:
try
{
File.Create(targetFile);
//File.WriteAllText(targetFile, $"test {DateTime.Now.ToString()}");
}
catch (UnauthorizedAccessException uaex)
{
}
我已经一步一步地检查了它,一旦我使用调试器进入“File.Create()”方法,异常就会上升,并且它不会进入 catch 块,而且,如果我删除try-catch,它不会冒泡到调用包含 this 的方法。
有人知道为什么 try-catch 和冒泡不起作用吗?
ps。我试图创建文件的位置是故意写保护的,这只是一种检查它是否是的方法。
【问题讨论】:
-
你在程序哪里有这段代码?
-
这是一个相当复杂的项目,这个方法是在应用启动时从后台线程调用的
-
我只是给你一个选择,检查目录是否只写保护,你可以在那个链接上查看解决方案:stackoverflow.com/questions/7511592/…
-
@Excalibrus 我认为这并不适用于对目录具有不同权限的所有用户。
-
@LasseV.Karlsen 我制作了一个测试应用程序,我尝试在其中“混淆”一些在主线程上运行任务的BackgroundWorkers,这些任务创建后台线程来运行我发布的相同的try-catch。而且我似乎无法用多线程或 1 个线程重新创建问题。