gpt4 book ai didi

C# 异常用户未处理

转载 作者:行者123 更新时间:2023-12-04 22:24:25 26 4
gpt4 key购买 nike

我正在构建一个 C# Excel 插件来替换字符串 xxxyyy并在给定的文件夹路径中批量查找文件:

     string replace = "xxx";
string replacement = "yyy";

foreach (FileInfo file in listOfFiles)
{
foreach (Excel.Worksheet xlWorkSheet in xlWorkBook.Worksheets)
{
Excel.Range r = (Excel.Range)xlWorkSheet.UsedRange;

Excel.Range first = r.Find(replace, m, m, Excel.XlLookAt.xlPart, Excel.XlSearchOrder.xlByRows, Excel.XlSearchDirection.xlNext, m, m, m);
if (first != null)
{
count++;
Excel.Range start = first;
do
{
start.Value = replacement;
count++;
start = r.FindNext(m);
xlWorkBook.Save();

}
while (start != first);
}
}

xlWorkBook.Close();
}

但是当我运行代码时, start.Value = replacement弹出一个错误
System.NullReferenceException
HResult=0x80004003
Message=Object reference not set to an instance of an object.
Source=<Cannot evaluate the exception source>
StackTrace:
<Cannot evaluate the exception stack trace>

我在这里看不到我的代码有任何问题。我已经检查了 (first != null)设置前 start , 所以 start不会为空。

最佳答案

是的,您检查 null,但您还有可能导致 null 的第二个操作。
当没有其他匹配项时,此行将返回 null

 start = r.FindNext(m);         

您应该在每次重新分配 start 后进行检查。多变的。

关于C# 异常用户未处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59378602/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com