FileHelper을 사용하여 CSV 파일을 구문 분석합니다. 파일 구문 분석 중 오류 메시지가 최종 사용자에게 표시됩니다. 최종 사용자는 기술 오류 메시지를 이해하지 못할 수도 있습니다. 너무 많은 사무원이 Int32
이 무엇인지 또는 Class: UploadFooDto
인지 알지 못합니다.FileHelper 라이브러리 - 사용자 정의 오류 메시지
오류 메시지를보다 사용자에게 맞게 사용자 지정하고 싶습니다. 같은 뭔가 :
- 행 1 열 2 문자열은 (A) 숫자 대신
- 라인 2. 열 3. '13의 입력 된 -14-15 '유효한 날짜
API에서 오류 메시지를 사용자 정의 할 수있는 항목을 찾을 수 없습니다. 지금까지 내가 가진 대부분의 오류를 정리하는 확장 방법은 다음과 같습니다.
public static class FileHelperExceptionExtensions
{
public static string BuildMessage(this ErrorInfo error)
{
if (error.ExceptionInfo is ConvertException)
{
return ((ConvertException)error.ExceptionInfo).BuildMessage();
}
if (error.ExceptionInfo is BadUsageException)
{
var message = error.ExceptionInfo.Message;
var readTo = message.IndexOf("Class:");
return message.Substring(0, readTo);
}
return string.Format("Line: {0}. An unspecific error occured.", error.LineNumber);
}
public static string BuildMessage(this ConvertException exception)
{
return string.Format("Line: {0}. Column: {1}. Field: {2}. Cannot convert '{3}' to type: '{4}'", exception.LineNumber, exception.ColumnNumber, exception.FieldName, exception.FieldStringValue, exception.FieldType.Name);
}
}
그러나 이러한 확장은 여전히 많이 필요합니다. 오류 메시지를 사용자 정의 할 수 있습니까?
내 유일한 변경 사항은 ConvertException을 "var convertInfo = error.ExceptionInfo as ConvertException;"을 사용하여 로컬 변수로 변환하는 것입니다. 널 (null)인지 검사합니다. 그렇다면 유형 검사가 두 개 많이 수행되지 않습니다. – netniV