Java业务开发常见异常
文章平均质量分 95
Java业务开发常见异常
cjh-Java
不积跬步,无以至千里
展开
-
35 分析定位Java问题,一定要用好这些工具(二)
其实,工具正是帮助我们深入到框架和组件内部,了解其运作方式和原理的重要抓手。所以,我们一定要用好它们。本篇将介绍如何使用JVM堆转储的工具MAT来分析OOM问题,以及如何使用全能的故障诊断工具Arthas来分析、定位高CPU问题。使用MAT分析OOM问题对于排查OOM问题、分析程序堆内存使用情况,最好的方式就是分析堆转储。堆转储,包含了堆现场全貌和线程栈信息(Java 6 Update 14开始包含)可以对程序内有多少对象、哪些是大对象一目了然,就好似得到了病人在某个瞬间的全景核磁影像,可以拿着慢慢分析,进原创 2022-03-03 11:55:24 · 546 阅读 · 0 评论 -
34 _ 加餐4:分析定位Java问题,一定要用好这些工具(一)
遇到问题尽量不要去猜,一定要眼见为实。只有通过日志、监控或工具真正看到问题,然后再回到代码中进行比对确认,我们才能认为是找到了根本原因。你可能一开始会比较畏惧使用复杂的工具去排查问题,又或者是打开了工具感觉无从下手,但是随着实践越来越多,对Java程序和各种框架的运作越来越熟悉,你会发现使用这些工具越来越顺手。其实呢,工具只是我们定位问题的手段,要用好工具主要还是得对程序本身的运作有大概的认识,这需要长期的积累。我们可以先学习下如何使用JDK自带工具、Wireshark来分析和定位Java程序的问题吧。使用原创 2022-03-03 10:50:50 · 505 阅读 · 0 评论 -
33 _ 加餐3:定位应用问题,排错套路很重要
排查问题的思路很重要,如何从容、高效地定位到根因呢?在不同环境排查问题,有不同的方式要说排查问题的思路,我们首先得明白是在什么环境排错。如果是在自己的开发环境排查问题,那你几乎可以使用任何自己熟悉的工具来排查,甚至可以进行单步调试。只要问题能重现,排查就不会太困难,最多就是把程序调试到JDK或三方类库内部进行分析。如果是在测试环境排查问题,相比开发环境少的是调试,不过你可以使用JDK自带的jvisualvm或阿里的Arthas,附加到远程的JVM进程排查问题。另外,测试环境允许造数据、造压力模拟我们需要原创 2022-03-02 18:43:33 · 203 阅读 · 0 评论 -
29 _ 数据和代码:数据就是数据,代码就是代码
你好,我是朱晔。今天,我来和你聊聊数据和代码的问题。正如这一讲标题“数据就是数据,代码就是代码”所说,Web安全方面的很多漏洞,都是源自把数据当成了代码来执行,也就是注入类问题,比如:客户端提供给服务端的查询值,是一个数据,会成为SQL查询的一部分。黑客通过修改这个值注入一些SQL,来达到在服务端运行SQL的目的,相当于把查询条件的数据变为了查询代码。这种攻击方式,叫做SQL注入。对于规则引擎,我们可能会用动态语言做一些计算,和SQL注入一样外部传入的数据只能当做数据使用,如果被黑客利用传入了代码,那.原创 2022-03-02 11:26:28 · 5526 阅读 · 0 评论 -
27 _ 数据源头:任何客户端的东西都不可信任
从今天开始,我要和你讨论几个有关安全的话题。首先声明,我不是安全专家,但我发现有这么一个问题,那就是许多做业务开发的同学往往一点点安全意识都没有。如果有些公司没有安全部门或专家的话,安全问题就会非常严重。如果只是用一些所谓的渗透服务浅层次地做一下扫描和渗透,而不在代码和逻辑层面做进一步分析的话,能够发现的安全问题非常有限。要做好安全,还是要靠一线程序员和产品经理点点滴滴的意识。所以接下来的几篇文章,我会从业务开发的角度,和你说说我们应该最应该具备的安全意识。对于HTTP请求,我们要在脑子里有一个根深蒂固的概原创 2022-03-02 10:00:50 · 905 阅读 · 1 评论 -
12 _ 异常处理:别让自己在出问题的时候变为瞎子
来聊聊异常处理容易踩的坑。应用程序避免不了出异常,捕获和处理异常是考验编程功力的一个精细活。一些业务项目中,我曾看到开发同学在开发业务逻辑时不考虑任何异常处理,项目接近完成时再采用“流水线”的方式进行异常处理,也就是统一为所有方法打上try…catch…捕获所有异常记录日志,有些技巧的同学可能会使用AOP来进行类似的“统一异常处理”。其实,这种处理异常的方式非常不可取。那么今天,我就和你分享下不可取的原因、与异常处理相关的坑和最佳实践。捕获和处理异常容易犯的错“统一异常处理”方式正是我要说的第一个错:不在业原创 2022-03-01 18:36:25 · 488 阅读 · 0 评论