当前位置: 首页 > 知识库问答 >
问题:

PSQLException的捕获块不可达。此异常从不从try语句主体引发

汪兴为
2023-03-14

我正在尝试获得PSQLException异常,但是它告诉我这个块无法到达,有人知道为什么吗?我的意思是,我不能运行或任何东西,Eclipse标记为一个错误。但是,例如,如果我放置异常e,而不是PSQLException e,它不会给出错误。

@DeleteMapping("/delete/{pais_id}")
    public Resultado<Pais> eliminaPais(@PathVariable("pais_id") Long pais_id, HttpServletResponse response) {
        Resultado<Pais> res = new Resultado<>();
    
        try {
            Optional<Pais> existePais = paisService.getFindById(pais_id);
            if (existePais.isPresent()) {
                if (pais_id != null) {
                    // monedaService.setANullPais(pais_id);
                    try{
                        paisService.getEliminaPais(pais_id);
                    res.setCodigo(200);
                    res.setMensaje("El país " + existePais.get().getNombre() + " ha sido eliminado");
                    res.setDatos(existePais.get());
                    }catch(PSQLException e) { //HERE 
                        res.setCodigo(400);
                        res.setMensaje("El país no " + existePais.get().getNombre() + " ha sido eliminado");
                        res.setDatos(null);
                    }
                    
                    
                    
    
                }
            } else {
                res.setSuccess(false);
                res.setMensaje("Se ha producido un error, el ID proporcionado no existe " + pais_id);
                res.setCodigo(400);
            }
        } catch (Exception e) {
        
            res.setSuccess(false);
            res.setMensaje("Se ha producido un error: " + e.getMessage());
            res.setCodigo(400);
        }
        response.setStatus(res.getCodigo());
        return res;
    }

共有1个答案

云联
2023-03-14

由于这是一个检查异常,您试图捕获一个从未引发的异常。
您尝试块代码应该引发一个检查异常,那么只有您才能捕获它。
在您的情况下,这是PSQLException。

 类似资料:
  • **程序需要做的事情:** 当它运行时接受两个命令行参数,否则抛出一个错误。该规则包含以下要求:“如果没有命令参数,则执行I/O错误处理。” 问题是,每次尝试使用I/O异常捕获时,都会收到以下错误: 无法访问IOException得catch块.此异常从不从try语句正文引发 我从Eclipse获得的快速修复建议: 1。删除Catch条款2。用close替换Catch子句 下面是我的代码: nul

  • 我写了一段代码,每当我用特定的图像名称点击url时返回图像,如果找不到图像,就返回错误图像。 但我还是会遇到这个错误,当我试图击中错误的图像 代码出了什么问题?

  • 考虑来自Java文档的以下代码。 根据Java文档, 在示例readFirstLineFromFile中,如果从try块和try with resources语句抛出异常,则方法readFirstLineFromFile抛出从try块抛出的异常;禁止从try with resources块引发的异常。 另一方面,也提到了 由于BufferedReader实例是在try with resource语

  • 问题内容: 我在Java中进行异常处理时遇到问题,这是我的代码。尝试运行以下行时出现编译器错误:。错误是: 永远不会在相应的try语句的主体中引发MojException异常 这是代码: 这是MojException的代码: 谁能帮我这个? 问题答案: try语句中的catch块需要 精确 捕获-block 内的代码 可能 抛出的异常(或该异常的超类)。 您想做的是这样的: 这将导致编译器错误,因

  • 本文向大家介绍Python用Try语句捕获异常的实例方法,包括了Python用Try语句捕获异常的实例方法的使用技巧和注意事项,需要的朋友参考一下 python的异常,以及用try复合语句处理异常。 运行代码时有时会出现各种各样的错误,致使解析器中断执行,并提示xxxxxxErorr的提示,后面跟具体的错误的描述,这被称为是引发了异常。 其实异常告诉我们的是遇到了什么类型的错误。xxxxErorr

  • 我已经看到过一个类似的问题,但是我还没有找到一个解决方案,因为在我的例子中,放入try子句的函数实际上会引发一个异常。 在my try块中,psv main调用方法,该方法打印2并引发名为myexc3的异常。然后,这个异常应该由处理,它应该打印3等等。但代码实际上并不编译: 异常MyExc3从不在相应try语句的正文中抛出 这是为什么?