gpt4 book ai didi

c# - 在 List 中查找抛出异常的项

转载 作者:太空宇宙 更新时间:2023-11-03 21:12:47 25 4
gpt4 key购买 nike

我继承了一个 WCF Web 服务应用程序,它需要更好的错误跟踪。我们所做的是从一个系统 (AcuODBC) 查询数据,并将该数据发送到另一个系统 (Salesforce)。此查询将以 List<T> 的形式返回数千个复杂对象的 10。 .然后我们处理这个 List<T>一次以 200 条记录为一组将字段映射到另一个对象类型,然后将该批处理发送到 Salesforce。完成后,下一批开始。这是一个简短的例子:

int intStart = 0, intEnd = 200;
//done in a loop, snipped for brevity
var leases = from i in trleases.GetAllLeases(branch).Skip(intStart).Take(intEnd)
select new sforceObject.SFDC_Lease() {
LeaseNumber = i.LeaseNumber.ToString(),
AccountNumber = i.LeaseCustomer,
Branch = i.Branch
(...)//about 150 properties

//do stuff with list and increment to next batch
intStart += 200;

但是,问题是如果一个对象有一个错误的字段映射(Invalid Cast Exception),我想将失败的对象打印到日志中。

问题

有什么方法可以破译 200 个对象中的哪个对象引发了异常?我可以放弃提供给我的批处理概念,但出于性能原因,我宁愿尽可能避免这种情况。

最佳答案

这应该通过非常小的代码更改来完成您正在寻找的内容:

int intStart = 0, intEnd = 200, count = 0;
List<SDFC_Lease> leases = new List<SDFC_Lease>();
//done in a loop, snipped for brevity
foreach(var i in trleases.GetAllLeases(branch).Skip(intStart).Take(intEnd)) {
try {
count++;
leases.Add(new sforceObject.SFDC_Lease() {
LeaseNumber = i.LeaseNumber.ToString(),
AccountNumber = i.LeaseCustomer,
Branch = i.Branch
(...)//about 150 properties);
} catch (Exception ex) {
// you now have you culprit either as 'i' or from the index 'count'
}
}
//do stuff with 'leases' and increment to next batch
intStart += 200;

关于c# - 在 List<T> 中查找抛出异常的项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36578037/

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