【发布时间】:2017-01-18 22:58:32
【问题描述】:
我正在使用 Java 中的套接字,当套接字被另一端关闭时,我可能会遇到如下异常:
java.io.IOException: Broken pipe
java.io.IOException: Connection reset by peer
在这种情况下,我知道连接已断开(即strerror(EPIPE) 和strerror(ECONNRESET)),我应该对此采取措施。其他错误可能有其他含义,我可能可以继续使用套接字而没有问题。
但如果我在另一个语言环境下运行 Java,错误可能会变成:
java.io.IOException: Datenübergabe unterbrochen (broken pipe)
java.io.IOException: Die Verbindung wurde vom Kommunikationspartner zurückgesetzt
第一条消息仍然包含英文 (C) 消息,所以我可以匹配,但第二条没有。除了为我的图书馆提供所有语言环境的反向strerror 目录之外,还有什么方法可以找出这个异常背后的错误号?
【问题讨论】:
-
只是一个问题,是否可以通过将默认
Locale设置为英文来解决?然后你会把你的实际语言环境保存在另一个变量中?这将迫使您传递语言环境并在您通常不使用的任何地方使用它。 -
将
LC_MESSAGES设置为C有效,所以我想我会推荐给图书馆用户。不确定设置 Java 语言环境是否会在此处产生影响。