Java 必须捕获或声明要引发未报告的异常:
我有一段代码,虽然有LombokJava 必须捕获或声明要引发未报告的异常:,java,lombok,Java,Lombok,我有一段代码,虽然有Lombokskillythrows注释,但编译器仍然抱怨错误:(65,58)java:unreportedexception java.rmi.RemoteException;必须捕获或声明要抛出: @SneakyThrows @Override public Optional<Boolean> unregister() throws RemoteException { if(registry != null) { Arrays.asList
skillythrows
注释,但编译器仍然抱怨错误:(65,58)java:unreportedexception java.rmi.RemoteException;必须捕获或声明要抛出:
@SneakyThrows
@Override
public Optional<Boolean> unregister() throws RemoteException {
if(registry != null) {
Arrays.asList(registry.list()).forEach(className -> {
registry.unbind(className);
});
}
return Optional.of(true);
}
将代码更新到此位置(解决问题)
但我们不希望更改为这样使用for循环:
@SneakyThrows
@Override
public Optional<Boolean> unregister() {
if (registry != null) {
String[] classNames = registry.list();
for(int i=0;i<classNames.length;i++) {
registry.unbind(classNames[i]);
}
}
return Optional.of(true);
}
@sleeythrows
@凌驾
公共可选取消注册(){
if(注册表!=null){
字符串[]classNames=registry.list();
对于(int i=0;i编译器正在抱怨,因为您告诉它unregister()
抛出一个选中的异常。从方法声明中删除throws-RemoteException
,以便Lombok可以对编译器隐藏选中的异常
示例用法:调用unregister()的方法是否有try-catch或抛出RemoteException定义?try@skillythrows(RemoteException.class)
@VietDD调用unregister
的方法也有skillythrows
注释,说明如何将try-catch添加到stopDatabase()?(将if{}else{}由于register.unregister();可以引发RemoteException,因此您需要捕获它或将其再次引发到调用stopDatabase()的方法(至少有1个方法需要捕获RemoteException)此外,在阅读链接网页时,请注意Skillythrows的常见用法。它旨在简化不必要的异常声明的处理。RemoteException不是一个不必要的异常,您应该处理它,而不是试图隐藏它。Lombok是编程工具的突击步枪。它永远不应该是placed掌握在未经培训的程序员手中。即使从声明中删除异常也无法解决问题。我想知道Lombok集成是否正常工作。以下是设置它的指南:
@SneakyThrows
@Override
public Optional<Boolean> unregister() {
if (registry != null) {
String[] classNames = registry.list();
for(int i=0;i<classNames.length;i++) {
registry.unbind(classNames[i]);
}
}
return Optional.of(true);
}