异常
文章平均质量分 52
日常开发中的常见异常积累
舞者H
策马前途须努力,莫学龙钟虚叹息
展开
-
浅谈防御性编程
防御性编程,基于我的理解,主要在于两点:不信任和防御。不信任,就是不要总是乐观的认为外部传参都是没问题的、“好”队友提供的方法都是可靠的、第三方的Api都是稳定的、用户都不是“抽象”的,会按照正常的流程来操作等等。防御,就是针对不信任,所引出来的意外情况,做出一些防御保护措施,来避免外部的不合理情况,对我们既有程序的不利影响。原创 2023-12-16 14:05:53 · 667 阅读 · 0 评论 -
RocketMQ任意延时消息导致重复消费问题
通过上述分析,这次出现的重复消费的问题,还是挺严重,但幸好还是在测试环境,发生在了生产,估计都得提桶跑路了。使用消息队列时,考虑可能出现的常见问题:重复消费,消息积压、消息丢失等;充分测试确保不会出现上述问题;慎重使用递归、死循环;我们相信正常流程执行的话,递归和死循环是不会有大问题的;但根据墨菲定律,虽然意外情况概率小,但仍可能出现。所以使用递归、死循环时,一定要慎重,考虑各种意外场景,且考虑中断策略。原创 2023-12-09 22:40:26 · 229 阅读 · 0 评论 -
如何更好的进行异常处理
为特定的错误情况创建自定义异常类,以提供更具信息性的异常类型,同时可以携带额外的上下文信息。原创 2023-08-27 15:27:55 · 225 阅读 · 0 评论 -
Struts2一次请求参数问题的记录
第二个Filer中,发现未防止Xss注入,对请求进行了处理,在图中第二个标注出,对数值中script的全文替换,导致了上述问题原创 2023-08-14 19:45:58 · 347 阅读 · 0 评论 -
异常:Caused by: java.lang.ClassNotFoundException: com.xxx.xxx
近日,IDEA启动JavaWeb项目,报错:Caused by: java.lang.ClassNotFoundException: com.xxx.xxx;显然这不是代码逻辑层面的问题,大概率就是,Web项目的配置有问题;同样的代码,同事可以成功启动,而我的启动报错;然后对照文章,配置了Web项目的。启动配置,再次启动无报错。原创 2023-04-06 17:58:41 · 675 阅读 · 0 评论 -
异常:连接数据库报错CLIENT_PLUGIN_AUTH is required
今天在启动项目,链接数据库时,报错:看了下网上说明,错误发生原因就是:maven的数据库jar包版本和数据库服务器版本不一致导致的,我本机安装的mysql服务版本是5.0版本;然后查看maven项目依赖的版本,发现是5.1.8:照理说,这两个版本差别不大,应该不存在上述的版本错误的问题才对啊,但是启动仍然报错,这次我发现项目加载的其实是8.0版本的的jar包:最后,在左侧项目的依赖jar包栏里,发现了这个8.0版本的jar包依然存在,且被默认加载了高版本:然后,我移除原创 2020-08-23 11:12:47 · 7894 阅读 · 0 评论 -
异常:maven install 报错:repackage failed: Unable to find main class
今天在用maven对项目进行install时,提示报错:Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.3.1.RELEASE:repackage (repackage) on project core: Execution repackage of goal org.springframework.boot:spring-boot-maven-plugin:2.3.1.RELEASE:repackag原创 2020-08-23 10:29:13 · 3547 阅读 · 1 评论 -
Web项目启动,控制台乱码
通过IDEA,将Web项目部署到Tomcat上,启动之后,控制台输出中文乱码,如下图所示:处理:点击" Help" → “Edit custom VM options…”:末尾添加:-Dfile.encoding=UTF-8,然后重启IDEA,乱码消除。注意:在上面的乱码中,我曾试着修改:Idea安装目录bin里的idea64.exe.vmoptions文件,在末尾添加一行:-Dfile.encoding=UTF-8,未起作用;有没有疑问,这种方式和前面第一种方式有什么原创 2020-07-13 22:54:10 · 612 阅读 · 1 评论 -
异常:MySQL报错CLIENT_PLUGIN_AUTH is required
项目访问MySQL时,报错CLIENT_PLUGIN_AUTH is required,如下图:发生以上错误的原因应该是:pom依赖中导入的mysql版本和所连接的mysql版本不一致导致的。如下图,我没有指定pom中mysql的版本,则系统自动使用最新的版本。而我当前使用的myql版本为5.0(版本有点低),如下图:所以我选择在pom依赖中指定mysql版本与当前服务中版本一致,我指定的5.0.8版本,如下图:添加Mysql版本之后,更新依赖jar包(自动更新或者ins原创 2020-06-29 00:46:16 · 52803 阅读 · 4 评论