是這樣的,今天遇到了這個問題,我加了try catch 後也只顯示這樣
這樣我還是不太清楚錯在哪裡,以下是我的程式碼
public List<HDOrderListDto> FindAKHistory(string pat_guid, DateTime startDate, DateTime endDate)
{
if (String.IsNullOrWhiteSpace(pat_guid)) return null;
List<HDOrderListDto> dtos = (from x in _repo.HD_ORDER
where x.PAT_GUID == pat_guid && x.ODR_DATE >= startDate && x.ODR_DATE <= endDate
select new HDOrderListDto
{
OdrDate = x.ODR_DATE,
HDType = x.HD_TYPE,
AkCode = x.AK_CODE,
AkDesc = x.AK_DESC
}
).OrderByDescending(x=>x.OdrDate).ToList<HDOrderListDto>();
try
{
foreach (HDOrderListDto dto in dtos)
{
if (dto.AkCode == "OTHER")
{
dto.AkName= dto.AkDesc;
continue;
}
if (dto.HDType == "HD") dto.AkName = _repo.NCODE.Where(x => x.CID == dto.CID && x.NC_ID == "HDO1001" && x.NC_CODE == dto.AkCode).FirstOrDefault<NCODE>().NC_NAME;
if (dto.HDType == "HDF") dto.AkName = _repo.NCODE.Where(x => x.CID == dto.CID && x.NC_ID == "HDO6001" && x.NC_CODE == dto.AkCode).FirstOrDefault<NCODE>().NC_NAME;
}
}
catch (Exception ex)
{
throw ex;
}
return dtos;
}
想請問我try catch那段該如何下才能讓錯誤顯示得比較清楚?
這句話的意思就是你有某個object是NULL,
你又想去執行NULL的object,
通常Debug的時候就會停在錯誤的那一行,
另外你加了try catch沒有捕捉到錯誤,
表示你加錯地方了...
正常來說try catch不會跳出這個視窗,
除非你沒有放對地方...
catch到Exception之後將Exception用ToString()轉換可以看到完整的錯誤訊息,
(很長, 但是看久了就習慣了)
就可以大概知道錯在哪裡,
在那邊再下中斷點去找原因..
(當然如果你經驗夠有時候看一下錯誤訊息再看一下程式碼就會知道問題在哪了)