Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 必须捕获或声明要引发未报告的异常:_Java_Lombok - Fatal编程技术网

Java 必须捕获或声明要引发未报告的异常:

Java 必须捕获或声明要引发未报告的异常:,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

我有一段代码,虽然有Lombok
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);
}