我想弄清楚。我有这行代码:
MqttClient Client = new MqttClient(Broker, ClientId, Persistence);
但是显示"未处理的异常" 错误。所以我用try / catch包围它来修复它。
try {
MqttClient Client = new MqttClient(Broker, ClientId, Persistence);
} catch (MqttException e) {
e.printStackTrace();
}
它实际上有效,但无法理解为什么需要这个。提前谢谢。
答案 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的类。非常感谢你。