【发布时间】:2016-07-27 19:58:04
【问题描述】:
我正在创建一种信使程序,客户端与服务器等进行通信。 我偶然发现的问题是在尝试创建 ObjectInputStream 和 ObjectOutputStream 时。下面是实例化对象流的方法:
private void initializeStreams() {
try {
input = new ObjectInputStream(socket.getInputStream());
if (input != null) {
System.out.println("ObjectInputStream successfully initiated");
} else {
System.out.println("ObjectInputStream is null but did not return an exception when being instantiated");
}
} catch (IOException ioe) {
System.out.println("Could not initialize ObjectInputStream: " + ioe.getMessage());
}
try {
output = new ObjectOutputStream(socket.getOutputStream());
if (output != null) {
System.out.println("ObjectOutputStream successfully initiated");
} else {
System.out.println("ObjectOutputStream is null but did not return an exception when being instantiated");
}
} catch (IOException ioe) {
System.out.println("Could not initialize ObjectOutputStream: " + ioe.getMessage());
}
}`
这个方法的问题是没有调用 System.out.println() 方法,尽管至少据我所知,应该调用每个流的一个。例如,在实例化 ObjectInputStream 时,它应该要么抛出异常(它显然不会因为 System.out.println() 没有被调用),返回 null(这似乎也不是这种情况,因为 System .out.println() 没有被调用)或成功创建 ObjectInputStream 对象,因为没有调用 System.out.println() 对象。为什么它没有遇到任何这些情况?我是否错过了可能发生的另一种情况?
附:是的,initializeStreams() 方法是从程序中调用的,我刚刚检查了它,将 System.out.println() 放在方法的第一行。
谢谢
【问题讨论】:
-
添加断点并调试。
-
尝试调试您的代码,看看当您一次单步执行该方法时会发生什么。
-
感谢您的宝贵时间,我设法解决了问题
标签: java exception-handling objectinputstream objectoutputstream