【发布时间】:2016-09-21 20:05:54
【问题描述】:
以下代码块陷入困境,zip文件不存在,我在此代码块之前的代码块中检查。
try
{
ZipFile.CreateFromDirectory(pathToFilesToZip, zipPath, CompressionLevel.Fastest, true);
//ZipFile.ExtractToDirectory(zipPath, pathToStoreNewZipFile);
return true;
}
catch (Exception ex)
{
//log error here
var errorMessage = ex.InnerException;
Console.WriteLine(errorMessage);
return false;
}
问题是代码有效,zip 文件是在正确的位置创建的。更奇怪的是, ex 在 catch 块中为空。 为什么执行的代码行会产生异常?
【问题讨论】:
-
我之前遇到过这个问题,我删除了异常部分中的代码有随机问题,所以我将代码包装在 using 并消除了 try catch 我认为这可能是一个错误,你可以尝试相同东西..
-
@MethodMan...用什么?这段代码中有什么是一次性的?
-
@dinotom zip 文件是否可能已经存在,可能从第一次执行开始?
-
在代码运行之前zip不存在,我已经检查过了
-
一个 InnerException 可以有它自己的 InnerException 等等。我想如果你确切地知道你正在寻找什么异常堆栈,那么你可以直接进入 InnerException,但否则可能有 10 个异常通过 InnerException 链接在一起,你只会抓住第一个。我使用this method 作为获取所有内部异常的简单方法
while (ex != null) {print ex.message; ex = ex.InnerException;}