나는 SqlException
에 의해 생성 된 에러 코드를 볼 필요가있다. 그러나 나는 발사 할 수 없다. NHibernate를 사용하고 내 테이블에 SQL UNIQUE CONSTRAINT
설정이 있습니다. 해당 제약 조건을 위반할 때 오류 코드를 catch하고이를 기반으로 사용자 친화적 인 메시지를 생성해야합니다. 여기 내 시도/잡는 예제입니다 :Hibernate Transaction을 시도 할 때 SqlException을 잡아라
using (var txn = NHibernateSession.Current.BeginTransaction()) {
try {
Session["Report"] = report;
_reportRepository.SaveOrUpdate(report);
txn.Commit();
Fetch(null, report.ReportId, string.Empty);
} catch (SqlException sqlE) {
var test = sqlE.ErrorCode;
ModelState.AddModelError("name", Constants.ErrorMessages.InvalidReportName);
return Fetch(report, report.ReportId, true.ToString());
} catch (InvalidStateException ex) {
txn.Rollback();
ModelState.AddModelErrorsFrom(ex, "report.");
} catch (Exception e) {
txn.Rollback();
ModelState.AddModelError(String.Empty, Constants.ErrorMessages.GeneralSaving);
}
}
제발 용서해주십시오. GenericADOException
를 잡아와 InnerException
특성을보고하는 방법을 보여줍니다
당신은 남자 야! 정말 고맙습니다. 나는이 사이트를 좋아한다. – BueKoW
@BueKoW, 답을 승인 된 것으로 표시하는 것을 잊지 마십시오. –