首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

throw 异常,竟然不会中止代码

大家好,是一航! 今天1024程序员节日,在这里祝大家节日快乐!...问题总结起来就一句话:明明一个方法执行 throw 了一个异常,调用方也没有 try-catch 捕获,结果异常后,代码依然很丝滑往下继续执行了 看一段示例伪代码: 一个用于验证请求工具类 @Slf4j...代码,他居然在异常之后,还继续执行了后续代码问题原因 事出反常必有妖......经过一圈排查,发现这里代码并没有问题;导致这个bug主要是因为一个不太规范AOP操作,拦截了异常,使得异常虽然抛是抛了,但是抛了个寂寞,后续流程依然继续在执行; 问题复现 项目中所有接口都放在一个...util目录,写了个校验 Util 工具类,来校验参数,在不满足条件情况下抛出异常; 伪代码和目录结构如下: 这么一写,就出现了文章一开头说问题了,这个Controller里面的校验方法不管怎么抛异常

11510

【LeetCode】均等概率问题妙招!

作者:水墨寒 掘金ID:https://juejin.cn/user/3051900006317549 在解决算法问题中我们会经常遇到要求均等概率问题, 以leetcode 470....⚠️ 不讨论最优解,只讨论算法思路 看到均等概率问题, 我们最先要想到转成2进制来处理,思路是让均等概率转换成均等概率出现0和1, 再由 0 和 1 ,增加位数来处理均等概率其他数。...1 : 0 } 现在我们了过渡函数 Rand2 , 那么我们使用随机生成4位二进制数那么就会得到 一个 均等生成 0 ~ 15 函数 function Rand15(): number {...return Rand2() * 2 * 2 * 2 + Rand2() * 2 * 2 + Rand2() * 2 + Rand2() } 上面代码略蠢,我们用移位方法优化下, 左移操作符是二进制进位...00 概率是 P*P , 11 概率是 (1-P) * (1-P) 01 概率是 P * (1-P) 10 概率是 (1-P) * P 而这两个是相等(交换率) 那么我们只要 保留

32310
您找到你想要的搜索结果了吗?
是的
没有找到

几个代码调试奇技淫巧。

你好呀,是why。 在早期出了很多源码解读文章时候,就有朋友私信我,要出一篇关于 Idea 调试小技巧文章。...反正是都用过,这些姿势,呸,知识挺有用。 以下是正文。...一个不小心就会因为线程安全问题引起各种 Bug,并且这些 Bug 还可能很难复现。 由于操作系统线程调度是我们无法控制,所以多线程程序错误很大随机性,一旦出现问题很难找到。...比如下面这个流程,正常情况下程序没问题: ? 当出现了竞争问题,单个线程 read 和 write 操作之间,调度了其他线程,此时数据就会出错 ? 下面是一段示例代码。...好了,上面就是要给大家分享一些调试小技巧啦。 你有没有什么独家调试姿势呢? 欢迎大家在留言区分享。 ----

86840

读者说代码内存泄漏风险

昨天发表了一篇文章:手把手教姐姐写消息队列,其中一段代码被细心读者发现了内存泄漏危险,确实是这样,自己没有注意到这方面,追求完美的,马上进行了排查并更改了这个bug。...先贴一下会发生内存泄漏代码段,根据代码可以更好进行讲解: func (b *BrokerImpl) broadcast(msg interface{}, subscribers []chan interface...,所以最好还是使用pprof工具进行分析,他可以确定具体出现问题代码。...没看懂可以下载测试代码,自己测试一下,更能加深印象呦~~~ 这篇文章主要介绍了排查问题思路,go tool pprof这个工具很重要,遇到性能和内存gc问题,都可以使用golang tool pprof...不会小伙伴还是要学起来呀~~~ 最后感谢指出问题那位网友,让又有所收获,非常感谢,所以说嘛,还是要共同进步呀,你不会,并不代表别人不会,虚心使人进步嘛,加油各位小伙伴们~~~

63210

公司来了个新同事不会用 Lombok,还说代码问题

背景 最近公司新来一个搞 Java 同事,搞了半天项目还没有跑起来,后来叫我过去帮他看一下,然后指着红色编译错误和我说是不是代码问题。。...顿时就心想,这人是不是太水了啊,工作三年了,简单编译问题都搞不定?...一味地劲大家放弃,感觉有点偏激了,任何事物,存在就即合理,关键是利弊权衡问题罢了。...三、代码跟踪调试 使用 Lombok 可以帮助我们少写很多代码,但同时也降低了代码可读性和跟踪、调试问题。...但是想调试生成后 hashCode 方法运算过程,代码没有,断点都没法打,怎么调试? 即使如此,觉得这个问题不大,我们很少去跟踪这些代码,我们也可以通过其他方式来曲线解决。

1.2K20

《C陷阱与缺陷》之“语义”陷阱——数组越界导致程序死循环问题

一.问题引入 我们先来一起看一段代码,思考一下它运行结果可能是什么?...: 我们可以看出来这段代码是通过一个for循环对数组元素进行遍历重新赋值为0,但是我们很容易发现这段代码在访问数组时越界了,数组只有10个元素,第10个元素下标应该是9,但是我们访问下标i却是0...我们运行一下看看(这里使用编译器是visual studio 2022,x86环境下) 我们用visual studio 2022运行该代码,程序陷入了死循环,为什么会出现这样结果呢?...二.问题分析 下面我们通过调式来观察一下,导致死循环原因是什么: 那么既然在调试过程中,i 值和 arr[12] 值一直相等,我们猜想,i 和 arr[12] 是不是处在同一块内存空间上。...该问题出自《C陷阱与缺陷》这本书(第3章“语义”陷阱 第6节 ): 以上就是对该问题(出自《C陷阱与缺陷》第3章“语义”陷阱 第6节 )全部讲解欢迎大家指正!!!

14510

一个问题,用了多线程后,两个问题了现在

在《对进程和线程一些总结》中也有介绍,这里就不详述。 为什么要用多线程 很显然,多线程能够同时执行多个任务。...同样,如果有一个任务特别耗时,而这个任务可以拆分为多个任务,那么就可以让每个线程去执行一个任务,这样任务就可以更快地完成了。 代价 听起来都很好,但是多线程是代价。...由于它们“同时”进行任务,那么它们任务有序性就很难保障,而且一旦任务相关,它们之间可能还会竞争某些公共资源,造成死锁等问题。...在《一个奇怪链接问题》中提到,对于非glibc库中库函数,都需要显式链接对应库。...也就是说,创建线程时候,传入参数必须确保其使用这个参数时,参数没有被修改,否则的话,拿到将是错误值, 总结 本文通过一些小例子,简单介绍了线程概念,对于绑核,多线程同步等问题均一笔带过,将在后面的文章中继续介绍

98430

精益生产哪些陷阱是企业要避开

精益生产是一种以最小化浪费为目的生产模式,适用于任何规模企业。尽管它可以为企业提供巨大收益,但它也存在一些陷阱,如果企业不注意可能会导致失败或者效果不尽如人意。...以下是企业在使用精益生产时应该避免一些陷阱:图片1....过分追求效率:企业在实施精益生产时,可能会过度强调生产效率,忽略了产品质量和客户服务,这可能会导致产品质量下降、客户流失等问题。3....未能持续改进:精益生产是一个不断改进过程,而不是一次性实践,企业需要在持续改进方面投入足够时间和资源,否则就会在竞争中落后。4. 不重视培训和教育:精益生产需要员工积极参与和支持。...总体而言,精益生产是一种优秀生产模式,但要想获得最大收益,企业需要充分了解其优点和缺点,并避免上述陷阱

16130

曾经,被这些陷阱找不着北...

总得有人做人,有人当动物吧,所以,撒旦必须挖许多各种各样陷阱,就让迷糊的人糊里糊涂往里钻,钻进某个陷阱,就失去了生命自由,就没有机会去天堂了。...可能有的在以前文章中已经提到过了,但鉴于它们真的很重要,值得再一次提到。 01.赋值生成引用 对于这个非常核心问题必须再提及它一次。你需要理解「共享引用」是怎么回事。...但是我们换个角度来看,这样用元组、数字等不可变对象其实是好处,因为无法在原处修改,不会出现上一小节中列表 lst1 和 lst2 中出现那种问题。...由于 lst 在 l2 那行代码中是嵌套,返回赋值为 lst 原始列表,所以会出现在「赋值生成引用」这一节中出现那种问题: >>> lst[0] = 0 >>> l1 [1, 2, 3, 1,...代表对象中带有循环之外,还有一种容易造成误会情况也该知道:「循环结构可能会导致程序代码陷入到无法预期循环当中」。

29130

上古代码漫游记(二):把陷阱去掉了,反倒踩进了新陷阱

摄影:产品经理 炸牛奶 两个月之前,写了一篇文章《长见识,让大家看看什么是垃圾代码》,不少同学都表示长见识了。今天我们再来看另外一个问题。 相信很多人都知道,Python一个默认参数陷阱。...要解决这个问题也非常简单,默认参数使用不可变对象就可以了: 最近,在上古代码中开发新功能,看到一段处理Exception函数,默认参数就使用字典。...""" 理论上讲,这样改移除了一个隐患,并且对后面的具体代码来说,param_dict始终都是一个字典,应该没有什么问题才对。...一看,不就是这个函数报错了吗。一通分析函数调用栈,发现了问题原因。...msg = extra_msg.format(**param_dict) """其他代码""" 这真的应验了那句话,当一段显然问题代码竟然正常运行时候,你就不要去动他了,它可能处于负负得正状态

28110

Scala代码编写中常见十大陷阱

很多Java开发者在学习Scala语言时候,往往觉得Scala语法和用法有些过于复杂,充满语法糖,太“甜”了。在使用Scala编写代码时,由于语法和编写习惯不同,很多开发者会犯相同或相似的错误。...如果使用正确,Scala可以大量减少应用程序对代码需求。 对于Scala编程, 我们收集了这些常见代码编写中陷阱。...同时,在处理XML时忘记了等号两端空格。比如: val xml= 这段代码真正意思是: val xml.$equal$less(root)....object MyScalaApp extends Application { // ... body ... } 示例部分问题在于,body部分在单元对象初始化时执行。...同样,解决办法是使用一个特定类。 另一种可能导致implicit用法出问题情况是偏好使用操作符。

1K50

为什么两个表建立数据关系问题

小勤:大海,为什么这两个简单表建立数据关系问题啊? 大海:啊?出什么问题了?...小勤:你看,先将表添加到数据模型,这是订单明细表: 用同样方法将产品表也添加到数据模型,然后创建表间关系,结果出错了! 大海:你产品表里产品名称重复了。 小勤:啊?...看看: 小勤:真的嘢!里面有两个小米,一个是宏仁生产,一个是德昌生产。但是,产品名称重复不行吗? 大海:当然不行啊,你产品名称是重复怎么知道订单明细表里产品应该对应你产品表里哪一个啊?...小勤:啊,知道了,看来还是得把订单明细表里产品ID放出来,不然做出来数据分析都是不对。 大海:很棒,这么快就想到产品ID问题了。...小勤:你上次《表间关系一线牵,何须匹配重复拼数据》文章里不是提醒吗?只是没想到我数据那么快就存在这种情况。 大海:呵呵,名称重复情况太正常了,所以尽可能都用ID编码。

1.1K20

“这段代码在本地运行没问题啊?”

代码仓库 代码是运行互联网项目的核心。在快速迭代互联网项目开发中,最常见便是多人共同协作开发场景。将代码托管至云端并使用优秀代码管理系统,对于开发人员是至关重要。...CODING DevOps代码托管服务,除了基本代码版本管理能力之外,还提供质量门禁、代码扫描等能力,能够帮助开发者规避本地代码管理局限与安全性障碍,回归开发本身,赋能云端协作,实现快速迭代。...发布到 CODING DevOps制品仓库,也可以有序管理构建出制品。...其次,微服务架构下自测反馈流程实在太长了,每次写完代码要想自测一下,我们都需要经过编译-打包-推送仓库-部署整个流程才能看到结果。...再次,本地环境、测试环境、线上环境很可能差别极大,在本地调试没问题程序员,换个环境说不定就会出大问题。因此经常听到程序员抱怨:“这段代码本地是没问题啊?”

71110

“这段代码在本地运行没问题啊?”

代码仓库 代码是运行互联网项目的核心。在快速迭代互联网项目开发中,最常见便是多人共同协作开发场景。将代码托管至云端并使用优秀代码管理系统,对于开发人员是至关重要。...CODING DevOps代码托管服务,除了基本代码版本管理能力之外,还提供质量门禁、代码扫描等能力,能够帮助开发者规避本地代码管理局限与安全性障碍,回归开发本身,赋能云端协作,实现快速迭代。...其次,微服务架构下自测反馈流程实在太长了,每次写完代码要想自测一下,我们都需要经过编译-打包-推送仓库-部署整个流程才能看到结果。...再次,本地环境、测试环境、线上环境很可能差别极大,在本地调试没问题程序员,换个环境说不定就会出大问题。因此经常听到程序员抱怨:“这段代码本地是没问题啊?”...、底层原理、指令语法……需要做是领悟算法思想、理解算法对内存空间和性能影响,以及开动脑筋去寻求解决问题最佳方案。

31410

【解疑答惑】css中经常被忽略代码陷阱

css大家都认为是很简单东西,但是是代码就有让人头疼时候,只是多少问题,伴着小编走过路,在前端多少也滚了一些坑,今天为了方便后来者,把收集到东西跟大家分享一下,需要朋友可以当作参考,希望对各位盟友帮助...deedf6 #deedf6 #fff;}.tab th{background:#edf4f0;}.tab tr.even td{background:#fff;} 7. min-height: 最小高度兼容代码...GradientType=0,startColorstr='#50000000',endColorstr='#50000000')\9; 看哪个startColorstr和endColorstr,一共8位,后6位是RGB颜色代码...渐变 http://www.iefans.net/ie10-yulanban-css3-jianbian/ alpha透明兼容代码生成: http://leegorous.net/tools/bg-alpha.html...css代码,篇幅所限,后续会陆续更新感谢盟友阅读;

60050

同学问了一个很多前端都在担忧问题

如图,这是今天一个先行者计划成员,在同聊天时候提到问题。这个问题确实是客观存在,前端变化快,一会今天这个了,一会明天又那个了。...“都有点动摇了,原来还总鼓励他们别放弃,搞一阵之后自己也有想法了” 在微信是这样回复他, 其实你细看,前端变都是上层建筑,什么vue啊,react啊,这那,,但这些框架都是对原生js再封装...只要你原生 js很ok,那么你学习新框架是很快。就例如我,原生 js很ok,所以我学什么新框架,都很快。一个新框架出来,无非是一套新js语法而已,核心还是那些。...你看jq,它源码核心是call、prototype和单例。vue和react,它们源码思想是观察者模式,搞mvvm结构。你看redux和vuex,说什么数据啊,状态管理。...后端后端好处,学会一个j2ee可以吃很多年。但前端最大优势在于,只要你比别人快,你就会有很大优势。 这一点就如同现在中国,唯一不变就是变化。

1.1K80
领券