2 wyb8133 wyb8133 于 2014.03.31 21:00 提问

java异常处理时抛出异常冲突问题

在使用apache.common.net时自定义了一个异常,想在初始化方法时扑捉到异常后都抛出该异常,但是遇到了问题,代码如雪啊

    private boolean intconnect(String host, int port) throws TelnetException {
    tc = new TelnetClient();

    TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler(
            "VT100", false, false, true, false);
    EchoOptionHandler echoopt = new EchoOptionHandler(true, false, true,
            false);
    SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true,
            true, true);

    try {
        tc.addOptionHandler(ttopt);
        tc.addOptionHandler(echoopt);
        tc.addOptionHandler(gaopt);

        tc.connect(host, port);
        in = tc.getInputStream();
        out = new PrintStream(tc.getOutputStream());
        return true;
    } catch (InvalidTelnetOptionException e) {
        System.err.println("Error registering option handlers: "
                + e.getMessage());
01      //throw new TelnetException("Error registering option handlers");
    } catch (IOException e) {
        e.printStackTrace();
02      throw new TelnetException("Error registering option handlers");
    }
03  return false;
}

01、02、03行不能同时存在,必须注释掉一行,不然就有编译错误,请高手指点谜经

2个回答

jueyue
jueyue   2014.04.02 23:50

是不是捕获异常,只有这两种异常,你try中包含了return 了,
如果只有这两种异常,那么肯定不会执行到最后的return 这样编译也就无法通过

u013248350
u013248350   2014.04.07 23:48

第一个异常是你自定义的吧!如果是的话,在1那里被捕捉到了,就不应该在2那里抛出。我觉得1那里可以不注释掉,2那里抛出IOException e。这样应该可以了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!