自定义异常并从异常解析消息

本文关键字:消息 异常 自定义异常 | 更新日期: 2023-09-27 18:10:30

ex.Message = "ORA-20586: SOME TEXT SOME TEXT.'nORA-06512: at '"RMM.LOKAC'", line 116'nORA-06512: at line 2"
catch (Exception ex)
    MessageBox.Show(ex.Message);
    return false;
}
ex.Message = "ORA-20586: SOME TEXT SOME TEXT.'nORA-06512: at '"RMM.LOKAC'", line 116'nORA-06512: at line 2"

但我需要得到只是"一些文本一些文本"。我怎么能只看文本呢?

ORA-20586表示用户错误http://www.dbmotive.com/support/oracle-error-codes/?type=ORA&errcode=20586

数据库为Oracle。

自定义异常并从异常解析消息

如何从这个错误信息中读取"SOME TEXT SOME TEXT"?

有多种方法可以提取字符串。您可以尝试字符串分割,正则表达式分割或字符串索引搜索。

最好先捕获异常,然后编写更用户友好的消息。如果可能,永远不要暴露应用程序的底层体系结构。

bool success = false;
try {
  // you code
  success = true; // Notice: Last call of  your try routine.
} catch (Exception ex {
  if (-1 < ex.Message.IndexOf("ORA-20586")) {
    MessageBox.Show("user error");
  } else {
    MessageBox.Show(ex.Message);
  }
}
return success;