getmessage和getLocalizedMessage的区别
时间: 2024-04-28 10:19:45 浏览: 15
在 Java 中,`getMessage()` 和 `getLocalizedMessage()` 都是用于获取异常信息的方法,但它们之间有一些区别。
`getMessage()` 方法返回的是异常对象的简短描述信息,通常是指异常的类型和一些关键信息。如果异常对象没有提供详细的描述信息,则此方法可能返回 null。
`getLocalizedMessage()` 方法返回的是异常对象的本地化详细描述信息,通常是指异常的类型、一些关键信息以及本地化的异常描述。如果此异常对象没有本地化描述信息,则此方法可能返回与 `getMessage()` 相同的信息。
因此,如果你想要获取异常对象的简短描述信息,可以使用 `getMessage()` 方法;如果你想要获取异常对象的本地化详细描述信息,则可以使用 `getLocalizedMessage()` 方法。
相关问题
getLocalizedMessage 与 getMessage
`getLocalizedMessage()` 和 `getMessage()` 都是 Java 中 `Throwable` 类的方法,它们都返回与异常相关的详细消息。
`getMessage()` 返回的是与异常关联的简短描述,通常是一条字符串消息,它可以通过构造函数传递给异常。
`getLocalizedMessage()` 返回的是本地化的详细消息,通常是与异常关联的更详细的错误描述,它可以根据用户的语言环境和国家/地区的文化习惯格式化。
如果没有为异常指定详细消息,则 `getMessage()` 和 `getLocalizedMessage()` 返回相同的结果。
在实际使用中,`getMessage()` 通常用于记录日志和调试目的,而 `getLocalizedMessage()` 通常用于向用户显示错误信息。
使用java编写MQTT客户端和服务端示例
好的,以下是使用Java编写MQTT客户端和服务端示例的代码:
MQTT客户端示例:
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MemoryPersistence;
public class MqttClientExample {
public static void main(String[] args) {
String topic = "MQTT Examples";
String content = "Message from MqttPublishSample";
int qos = 2;
String broker = "tcp://iot.eclipse.org:1883";
String clientId = "JavaSample";
MemoryPersistence persistence = new MemoryPersistence();
try {
MqttClient sampleClient = new MqttClient(broker, clientId, persistence);
MqttConnectOptions connOpts = new MqttConnectOptions();
connOpts.setCleanSession(true);
System.out.println("Connecting to broker: " + broker);
sampleClient.connect(connOpts);
System.out.println("Connected");
System.out.println("Publishing message: " + content);
MqttMessage message = new MqttMessage(content.getBytes());
message.setQos(qos);
sampleClient.publish(topic, message);
System.out.println("Message published");
sampleClient.disconnect();
System.out.println("Disconnected");
System.exit(0);
} catch (MqttException me) {
System.out.println("reason " + me.getReasonCode());
System.out.println("msg " + me.getMessage());
System.out.println("loc " + me.getLocalizedMessage());
System.out.println("cause " + me.getCause());
System.out.println("excep " + me);
me.printStackTrace();
}
}
}
MQTT服务端示例:
import org.eclipse.paho.server.mqttv3.*;
import org.eclipse.paho.server.mqttv3.persist.MemoryPersistence;
public class MqttServerExample {
public static void main(String[] args) {
int qos = 2;
String broker = "tcp://iot.eclipse.org:1883";
String clientId = "JavaServer";
MemoryPersistence persistence = new MemoryPersistence();
try {
MqttServerPersistence serverPersistence = new MemoryPersistence();
MqttServer server = new MqttServer(broker, clientId, serverPersistence);
server.start();
System.out.println("Server started");
MqttServerMessageHandler handler = new MqttServerMessageHandler() {
@Override
public void handleMessage(String topic, MqttMessage message) throws Exception {
System.out.println("Received message: " + message.toString() + " on topic: " + topic);
}
};
server.subscribe("MQTT Examples", qos, handler);
System.out.println("Subscribed to topic: MQTT Examples");
Thread.sleep(5000);
server.unsubscribe("MQTT Examples");
System.out.println("Unsubscribed from topic: MQTT Examples");
server.stop();
System.out.println("Server stopped");
} catch (MqttException me) {
System.out.println("reason " + me.getReasonCode());
System.out.println("msg " + me.getMessage());
System.out.println("loc " + me.getLocalizedMessage());
System.out.println("cause " + me.getCause());
System.out.println("excep " + me);
me.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
希望这些代码能够帮助你!