为什么必须用try / catch包含类MqttClient的实例?

时间:2017-01-20 05:25:11

标签: java mqtt iot paho

我想弄清楚。我有这行代码:

MqttClient Client = new MqttClient(Broker, ClientId, Persistence);

但是显示"未处理的异常" 错误。所以我用try / catch包围它来修复它。

 try {
        MqttClient Client = new MqttClient(Broker, ClientId, Persistence);
    } catch (MqttException e) {
        e.printStackTrace();
    }

它实际上有效,但无法理解为什么需要这个。提前谢谢。

2 个答案:

答案 0 :(得分:3)

实例不需要被try/catch包围,但是构造函数调用包含,或者需要在一个方法中声明抛出该异常。

答案 1 :(得分:-1)

正如一些答案所暗示的那样。我检查了类定义,以下是哪些构造函数:

public MqttClient(String serverURI, String clientId) throws MqttException {
    this(serverURI,clientId, new MqttDefaultFilePersistence());
}

public MqttClient(String serverURI, String clientId, MqttClientPersistence persistence) throws MqttException {
    aClient = new MqttAsyncClient(serverURI, clientId, persistence);
}

两者都抛出MqttException,这是另一个扩展Exception的类。非常感谢你。