北京 广告 手机网站,聊天软件出售,遵义 网站建设,学校英文网站建设申请java 异常 最佳实践在本文中#xff0c;我们将看到处理Java异常的最佳实践。 用Java处理异常不是一件容易的事#xff0c;因为新手很难理解#xff0c;甚至专业的开发人员也可能浪费时间讨论应该抛出或处理哪些Java异常。 因此#xff0c;最大的开发公司对如何使用它们有一… java 异常 最佳实践 在本文中我们将看到处理Java异常的最佳实践。 用Java处理异常不是一件容易的事因为新手很难理解甚至专业的开发人员也可能浪费时间讨论应该抛出或处理哪些Java异常。 因此最大的开发公司对如何使用它们有一套规则。 如果您是公司的新手那么Java异常处理中各种状态的呈现方式可能会让您感到震惊。 本文将向您展示最重要的十个方面您可以用来入门或改善异常处理。 异常是程序执行期间的异常情况。 因此让我们讨论处理Java异常的最佳实践。 1.处理Java异常的最佳实践 1.1永远不要在catch块中使用异常 catch (NoSuchMethodException e) {return null;
} 永远不要返回“ null”而不是处理异常它会消耗异常并永久使错误失败。 如果您不了解失败的原因那么将来就无法阻止自己。 1.2声明您的方法可能抛出的特定检查异常 public void foo() throws Exception { //Incorrect way
} 始终尝试避免上面的代码因为它可能完全出于拥有已检查异常的目的而造成缺陷。 有必要声明该方法可能引发的特定检查异常。 如果用户有许多已检查的异常则用户必须将其覆盖在用户的异常中并将信息附加到异常消息中否则用户也可以使用代码重构。 public void foo() throws SpecificException1, SpecificException2 { //Correct way
}1.3不要获取异常类而是捕获特定的子类 try {someMethod();
}
catch (Exception e)
{
LOGGER.error(method has failed, e);
} 获取异常的主要问题是如果用户稍后调用的方法将新检查的异常附加到其设计签名中则开发人员希望用户必须处理特定的新异常。 如果用户的代码出现异常它将永远无法理解该变化。 用户的代码错误并且可能在运行时的某个时间点崩溃。 1.4永远不要上任何Throwable类 这是一个严重的问题因为Java错误也可以是Throwable的子类。 错误是不可更改的条件无法由Java虚拟机本身控制。 Java虚拟机甚至可能在任何错误时都不请求用户的catch子句。 1.5始终准确地覆盖自定义异常中的异常以免丢失堆栈跟踪 catch (NoSuchMethodException e)
{
throw new MyServiceException(Some information: e.getMessage()); //Incorrect way
} 上面的命令可能会损坏主要异常的堆栈跟踪并且总是错误的。 正确的方法是 catch (NoSuchMethodException e) {throw new MyServiceException(Some information: , e); //Correct way
}1.6记录异常或抛出异常但不要同时执行 catch (NoSuchMethodException e) {LOGGER.error(Some information, e);throw e;
} 如上面的代码所示抛出和记录可能会在日志文件中导致多个日志消息。 对于试图浏览各种日志的开发人员代码中的单个问题可能会造成最坏的情况。 1.7永远不要从finally块抛出异常 try {someMethod(); //Throws exceptionOne
}finally
{cleanUp(); //If finally also threw an exception the exceptionOne will be lost forever
} 准确地说高达cleanUp永远不会引发异常。 在上述情况下如果someMethod引发异常并且在finally块中cleanUp引发异常则该方法之外的其他异常将消失原始的第一个异常正确的原因将永远消失。 1.8始终仅捕获那些可以处理的异常 catch (NoSuchMethodException e)
{
throw e; //Avoid this as it doesnt help anything
} 这是一个必不可少的概念从不捕获任何异常因此仅在可以处理任何异常的情况下捕获任何异常才可以在该异常中提供其他上下文数据。 如果您不能在catch块中处理它那么最好的建议是不要仅将其重新抛出就捕获它。 1.9不要使用printStackTrace语句 完成代码后切勿离开printStackTrace。 很有可能是您的同事之一他们最终将获得其中的堆栈跟踪信息并且对其处理方式的知识完全为零因为它不会附加任何上下文信息。 1.10如果您不打算处理异常请使用finally块而不是catch块 try {someMethod(); //Method 2
}
finally
{cleanUp(); //do cleanup here
} 这也是一个好习惯。 如果在您的方法内部访问某个方法2并且方法2引发一些您不想在方法1中处理的异常但是仍然希望进行某些清除以防万一发生异常那么请在finally块中执行此清除。 不要使用挡块。 正如我们所讨论的java异常处理是必不可少的并且有多种实践可以毫无问题地处理它们。 图片中出现的最新VPN应用漏洞是Google从其平台上删除了一些最佳VPN。 根据研究人员的说法它具有支持中间人MITM攻击的危险漏洞因此它仅允许黑客阻止提供商与用户之间的通信。 甚至将所有用户重定向到黑客的邪恶服务器而不是真正的VPN服务器。 因此谷歌删除了它们以保护用户免受漏洞侵害。 Google确认这种类型的漏洞仍然存在研究人员通过Google Play安全奖励计划GPSRP发布了结论。 GPSRP使安全分析人员可以发现安装次数超过1亿次的应用程序的漏洞。 2.结论 本文可帮助您获得有关处理Java异常的最佳实践的完整知识。 完全了解它是必不可少的因为正如我们所讨论的对于初学者和有经验的开发人员而言这个主题都很难。 我们还讨论了google和顶级VPN应用之间的问题即Google从其下载平台中删除了许多VPN并提供了有关VPN应用漏洞问题的完整信息。 翻译自: https://www.javacodegeeks.com/10-best-practices-to-handle-java-exceptions.htmljava 异常 最佳实践