SonarQube:(改为获取特定异常子类型的列表)
Posted
技术标签:
【中文标题】SonarQube:(改为获取特定异常子类型的列表)【英文标题】:SonarQube: (Catch a list of specific exception subtypes instead) 【发布时间】:2021-03-06 12:36:19 【问题描述】:我有一个关于通用异常的问题。当您尝试执行多项操作时,我们如何知道要使用哪个非泛型异常。
例如:
@PostConstruct
protected void init()
try
HttpSession session = request.getSession();
String policyInfo = (String) session.getAttribute("policyInfo");
if(session.getAttribute("faxNumber") != null)
faxNumber = (String) session.getAttribute("faxNumber");
policyNumber = (String) session.getAttribute("policyNumber");
JSONObject policyInfoObj = new JSONObject(policyInfo);
JSONArray policiesArr = policyInfoObj.getJSONArray("policies");
if (policiesArr.length() > 0)
JSONObject policyObj = policiesArr.getJSONObject(0);
JSONArray insuredVehicle = policyObj.getJSONArray("insuredVehicle");
checkInsuredVechile(insuredVehicle);
termStartDate = policyObj.getString("effectiveDate");
JSONArray addressArray = policyObj.getJSONArray("address");
policySource = policyObj.getString("policySource");
checkAddressArry(addressArray);
policyNumber = policyNumber.substring(0,5)+"-"+policyNumber.substring(5,7)+"-"+policyNumber.substring(7);
response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
catch(Exception e)
logger.error("Exception in getting policy details",e);
所以对于catch(Exception e)
,它将需要一个非通用异常,但我无法确定它可能是什么。
【问题讨论】:
去掉catch,看看你的IDE抱怨什么未被捕获,然后添加它们 @Michael 删除捕获并离开尝试?在我构建它之后,我得到一个构建失败。 不管怎样。只需查看错误“X 未捕获”,然后添加它。冲洗并重复,直到它起作用Caused by: org.apache.maven.plugin.compiler.CompilationFailureException: Compilation failure /va/com/farmers/aem/farmers/core/models/GetPolicyDetails.java:[57,9] 'try' without 'catch', 'finally' or resource declarations
好的,谢谢,它说构建失败对 ureported 异常 unreported exception org.json.JSONException; must be caught or declared to be thrown
【参考方案1】:
您应该只捕获特定的异常,例如:
catch(org.json.JsonException e)
而不是基类Exception
,这意味着所有可能的检查和未检查异常
【讨论】:
RuntimeException 怎么样?我们可以将其用于未选中的吗? 规则应该在文档中有哪些结构是允许的。什么是规则 ID?以上是关于SonarQube:(改为获取特定异常子类型的列表)的主要内容,如果未能解决你的问题,请参考以下文章
未处理的异常:类型'List<dynamic>'不是'String'类型的子类型无法获取json数据[重复]
无法获取数据,使用包 yfinance 按格式分组下载到熊猫数据框中,仅适用于我的子列表中的特定代码
powershell 这将使用power shell获取特定SharePoint网站集下的所有子网站的列表。第二个文件获取我们的子站点