如果我调用两个可以抛出相同异常的方法,但异常的理由不同,应该如何处理?异常处理最佳实践
我应该为每个方法放置一个try catch块,以便我可以用不同的方式处理这两种异常,或者我可以如何获取抛出异常的方法?
作为例子: 我有这样的方法
dir = Directory.CreateDirectory(Path.Combine(My.Settings.CalibrationExcelExportPath, dirName))
的方法,可以抛出IOexception
。
接下来我打电话给方法ExcelExport.ExportCalibrationAsync
创建一个TempFile,如果没有更多的临时名称空闲,它也可以抛出IOexception
。
现在我想在差异中处理异常。向用户提供正确信息的方式。
我试过exception.TargetSite
但我得到两次Void WinIOError(Int..)
,所以我不能用它来区分。
这里最好的做法是什么