lambda表达式一定要在内部捕获受检异常?
摘要:场景 以调用java.util.ArrayList#forEach方法为例,用不同的lambda表达式重写该Consumer接口。 RuntimeException list中有两个元素,调用forEach遍历,使用lambda重写Consumer接口,抛出不受检异常RuntimeException
阅读全文
springboot rabbitmq 死信队列应用场景和完整demo
摘要:何为死信队列? SpringBoot配置文件 初始化和绑定重定向队列配置类 生产者向业务队列发送消息 死信队列消费者 重定向队列 测试 何为死信队列? 死信队列实际上就是,当我们的业务队列处理失败(比如抛异常并且达到了retry的上限),就会将消息重新投递到另一个Exchange(Dead Lett
阅读全文
Java开发常犯的错误及基本知识(持续更新)
摘要:为什么lambda表达式无法声明throws异常,而必须要在内部捕获? https://www.cnblogs.com/theRhyme/p/java8-lambda-checked-exceptions.html CRLF,CR,LF的区别和联系 windows系统文件格式默认换行"是\r\n",
阅读全文
当try-catch-finally代码块遇上return,代码执行流程是怎样
摘要:场景 这里打算用一个Java读取文件内容的例子来测试,文件存在,不抛异常,文件不存在,则抛出FileNotFoundException; 代码 Java读取文件代码如下: /** * 根据路径和文件名获取内容 * @param filePath * @param fileName * @return
阅读全文
线程执行synchronized同步代码块时再次重入该锁过程中抛异常,是否会释放锁
摘要:一个线程执行synchronized同步代码时,再次重入该锁过程中,如果抛出异常,会释放锁吗? 如果锁的计数器为1,抛出异常,会直接释放锁; 那如果锁的计数器为2,抛出异常,会直接释放锁吗? 来简单测试一下 启动类 执行结果如下图: 结果分析: 当“杯子”线程获取到锁,锁的计数器为1,因为哨兵fla
阅读全文
Java中for循环中的的try-catch
摘要:异常处理 当for循环遇上try catch 首先是不建议在循环体内部进行try catch操作,效率会非常低,这里仅仅是测试这种情况,具体的业务场景建议还是不要在循环里try catch 上面执行了一个for循环,当i大于5就抛出异常,这里由于没有捕获异常,程序直接终止。 下面来看看捕获异常后的结
阅读全文