我有一个班级,我在这个班级里面有一个方法。
方法:
public void login(String username,String password) throws XMPPException, SmackException, IOException {
ConnectionConfiguration configuration=new ConnectionConfiguration("", 5222,"localhost");
configuration.setSecurityMode(SecurityMode.disabled);
connection=new XMPPTCPConnection(configuration);
try {
connection.connect();
connection.login(username,password);
ChatManager chatmanager = ChatManager.getInstanceFor(connection);
chatmanager.addChatListener(new ChatManagerListener() {
public void chatCreated(final Chat chat, final boolean createdLocally) {
chat.addMessageListener(messageListener);
}
});
}
catch (XMPPException | SmackException | IOException e) {
e.printStackTrace();
}
}
Xmpp需要try / catch块。我在方法中定义了try / catch。但是当我尝试在主类中使用这个方法时,我收到了编译错误:
Unhandled exception type IOException
我这样使用:
SmackClass smack=new SmackClass();
smack.login("asdad","asdasd");
如何解决此问题?
答案 0 :(得分:1)
XMPPException, SmackException, IOException
从login
方法的throws子句中删除它们。
它们导致主类中的编译时错误。
一般情况下,不要声明抛出这些例外 你已经在方法本身处理过了。
答案 1 :(得分:1)
如果你已经在throws XMPPException, SmackException, IOException
方法中处理过,那么你的方法不应该声明login
。
答案 2 :(得分:0)
两种可能的解决方案
public static void main(string[] args){
try {
SmackClass smack=new SmackClass();
smack.login("asdad","asdasd");
}
catch (XMPPException | SmackException | IOException e) {
e.printStackTrace();
}
}
您没有处理异常,因为您的方法可以抛出它