确定根异常? [英] determine the root exception?

查看:122
本文介绍了确定根异常?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

对于给定的异常堆栈,如何获得根异常(比如说是UnknownHostException)?

for the given exception stack, how the root exception (say it is UnknownHostException ) could be gained?

 [java] org.codehaus.xfire.XFireRuntimeException: Could not invoke service.. Nested exception is org.codehaus.xfire.fault.XFireFault: Couldn't send message.
 [java] org.codehaus.xfire.fault.XFireFault: Couldn't send message.
 [java]     at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
 [java]     at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:30)
 [java]     at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
 [java]     at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
 [java]     at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
 [java]     at org.codehaus.xfire.client.Client.invoke(Client.java:336)
 [java]     at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
 [java]     at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
 [java]     at $Proxy12.findICPInfoToObject(Unknown Source)
 [java]     at com.sinoi.icp.impl.ICPInfoFinderImpl.findByDomainName(Unknown Source)
 [java]     at com.sinoi.icp.IcpFinderDemo.main(Unknown Source)
 [java] Caused by: org.codehaus.xfire.XFireException: Couldn't send message.
 [java]     at org.codehaus.xfire.transport.http.HttpChannel.sendViaClient(HttpChannel.java:145)
 [java]     at org.codehaus.xfire.transport.http.HttpChannel.send(HttpChannel.java:48)
 [java]     at org.codehaus.xfire.handler.OutMessageSender.invoke(OutMessageSender.java:26)
 [java]     ... 9 more
 [java] Caused by: java.net.UnknownHostException: icpinfo.137.300.cn
 [java]     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195)
 [java]     at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
 [java]     at java.net.Socket.connect(Socket.java:529)
 [java]     at java.net.Socket.connect(Socket.java:478)
 [java]     at java.net.Socket.<init>(Socket.java:375)
 [java]     at java.net.Socket.<init>(Socket.java:249)
 [java]     at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:80)
 [java] 
 [java]     at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory.createSocket(DefaultProtocolSocketFactory.java:122)
 [java] 
 [java]     at org.apache.commons.httpclient.HttpConnection.open(HttpConnection.java:707)


推荐答案

以下是一个示例方法:

public static Throwable getRoot(Throwable t) {
    Throwable result = t;

    while (result.getCause() != null) {
        result = result.getCause();
    }

    return result;
}

这篇关于确定根异常?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆