我使用FileHelper解析CSV文件。分析文件時遇到的錯誤消息顯示給最終用戶。最終用戶可能無法理解技術錯誤信息。沒有太多的職員知道什麼是Int32
或Class: UploadFooDto
。FileHelper庫 - 自定義錯誤消息
我想定製錯誤消息,以便它們更加用戶友好。喜歡的東西:
- 行1列2的字符串(一)中輸入的不是數字
- 行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