由于某些原因,我似乎无法初始化InetAddress对象,我查看了文档,它与我使用它的方式完全一样。
InetAddress firstMachineAddress = InetAddress.getByName("129.26.70.95");
InetAddress secondMachineAddress = InetAddress.getByName("129.26.70.108");Eclipse说:
Default constructor cannot handle exception type UnknownHostException thrown by implicit super constructor. Must define an explicit constructor到底是怎么回事?
发布于 2016-10-27 11:42:23
您的代码似乎位于由另一个类扩展的类的构造函数中,如下所示:
import java.net.*;
class SuperclassWithUnknownHostException {
public SuperclassWithUnknownHostException() throws UnknownHostException {
InetAddress firstMachineAddress = InetAddress.getByName("129.26.70.95");
InetAddress secondMachineAddress = InetAddress.getByName("129.26.70.108");
}
}
class SubclassCannotHandleException extends SuperclassWithUnknownHostException {
}您需要向引发异常的子类添加一个默认构造函数:
class SubclassCannotHandleException extends SuperclassWithUnknownHostException {
public SubclassCannotHandleException() throws UnknownHostException {
}
}发布于 2016-10-27 11:42:21
您正在处理调用的方法引发的UnknownHostException吗?
InetAddress firstMachineAddress;
try {
firstMachineAddress = InetAddress.getByName("129.26.70.95");
} catch (UnknownHostException e) {
// print exception, throw error,
// try something else etc.
}发布于 2016-10-27 11:42:58
inetAddress对象为一个异常抛出一个异常,因此您需要在它周围包装一个尝试捕获,或者让您的方法也抛出一个异常。此外,我相信您正在得到错误,因为有一个异常回来,您没有处理。getByName()方法使用www.google.com或www.amazon.com等and地址名称的字符串参数。
try{
InetAddress Address = InetAddress.getByName("www.google.com");
System.out.println(Address);
}catch(UnknownHostException e){
e.printStackTrace();
}这显示www.google.com/64.233.177.147
https://stackoverflow.com/questions/40282881
复制相似问题