如何在不在 Android 中创建自定义字符串的情况下以用户友好的方式过滤错误消息?

How can I filter an error message in a user friendly way without creating a custom string in Android?

我最近创建了一个 AlertDialog 来通知用户发生了错误。在 catch 块中,我将异常消息设置如下:

try {
// Do stuff
} catch (Exception e) {
        mAlertDialog.setMessage(e.getMessage());
}

这工作得很好,我在 AlertDialog 中看到的消息如下:

Read error: ssl=0xb832f3f0: I/O error during system call, Connection timed out

有没有办法删除文本,使错误内容如下:

I/O error during system call, Connection timed out

我知道你可以使用

e.getMessage().substring()
e.getMessage().startsWith()

什么都没有,但我真的希望它能够以用户友好的形式报告可能发生的任何类型的错误。也许使用正则表达式?我没有太多经验。我真的很感激朝着正确的方向前进。非常感谢所有提示、提示、鼓励和帮助。

提前致谢!

您可以使用 replaceFirst.

mAlertDialog.setMessage(e.getMessage().replaceFirst(".*:\s*", ""));

这将匹配并用空字符串替换直到最后一个冒号的所有字符。

DEMO