codenameone:如何显式处理异常 java.net.ConnectionException

codenameone: how to handle exception java.net.ConnectionException explicitly

codenameone:如何显式处理异常 java.net.ConnectionException 我想在处理异常时处理异常 explicitly.Currently 它首先隐式处理,其中 detail.I 在屏幕上显示异常消息不想在屏幕上详细显示错误消息(弹出对话框) . 现在它显示异常 Java.net.Connection Exception: Connection refused for URL http:localhost/login connection refused.instead of this message 我只想在 pop 上显示 "connection refused" 消息-向上对话框

你能告诉我如何解决它吗?

在移动设备上,错误可能与模拟器上的错误完全不同,因为我们处理的是表面之下的本机 API。请参阅 networking section in the developer guide:

的错误处理部分

有两个不同的地方可以处理网络错误:

  • ConnectionRequest - 通过覆盖回调方法
  • NetworkManager 错误处理程序

请注意,NetworkManager 错误处理程序优先,因此您可以通过使用错误来定义网络错误处理的全局策略。

例如如果我想阻止所有网络错误向用户显示任何内容,我可以这样做:

NetworkManager.getInstance().addToQueue(request);
NetworkManager.getInstance().addErrorListener((e) -> e.consume());

错误侦听器首先调用与错误匹配的 NetworkEvent。使用该事件可防止它进一步传播到链中的 ConnectionRequest 回调中。

我们还可以覆盖请求中各种类型的错误回调,例如对于服务器错误代码,我们可以这样做:

ConnectionRequest request = new ConnectionRequest(url, false) {
    protected void handleErrorResponseCode(int code, String message) {
        if(code == 444) {
            // do something
        }
    }
    protected void handleException(Exception err) {
        // handle exception that occurred. Notice you can either have this or have the listener on the NetworkManager
    }
    protected void readResponse(InputStream input) {
        // just read from the response input stream
    }
};
NetworkManager.getInstance().addToQueue(request);