【JAVA基础】[异常处理]项目中悄无声息的RuntimeException

简介: 【JAVA基础】[异常处理]项目中悄无声息的RuntimeException

 引:今天去面试,和面试官的一些对话,面试官简称 面:


   面:你们用的Dubbo微服务,dubbo是可插拔的,这个模块突然被拔掉了,或者不在注册中心上了(反正就是调不到别的服务了)想过会出现问题,怎么处理吗?


   我:没想过,编程的时候如果调不通别人的接口了,就觉得是不是服务器不稳定了,哪出问题了,开始联系组长。


   面:调不通了肯定会报错,错误出现在页面或者日志里,是不是?


   我:恩;


   面:那有没有想过,我们没有try catch 这些异常,但是为什么这些异常还会出现在日志里?原理是什么?


   我:(内心是有点崩溃的,想想把Java基础里关于异常处理的内容都看了一遍啊,还有没学到的)犹豫了一下,想不出来,说,JAVA虚拟机自动处理的。(面试的时候,还是要诚实的,不会的不要乱编,面试官大多懂的比我多,但是可以说自己的思路)


   面:原理是什么?没有东西会自然而言的产生效果,为什么会出现在日志里呢?


   我:想不到了。


   面:Java异常有两种,一种是已知的异常,写一些调用文件的函数,没有写文件路径,这时候会提示去捕获这个异常,声明这个异常,另一种是运行时异常,运行时异常会捕获各种异常,毕竟写一个函数不能写几千几万行异常捕获,那就不用写代码了。这些处理不了的运行时异常在基本的类里捕捉了,再打印出来。


   顿悟,这不就是前天学习的checked异常和Runtime异常嘛。


一、Java常见异常类之间的继承关系:



20170930231536579.jpg

Error错误:与虚拟机有关的异常,比如:系统崩溃,虚拟机错误,动态链接失败,这些错误无法恢复,或者不可能捕捉。

    Exception:分为RuntimeException checked异常



二、关于RuntimeExceptionitooRuntimeException


常见的异常:空指针,下标越界,参数校验,JVM已经对其进行序列化处理,自动catch住后,会抛出正常的异常信息。但是在ITOO项目中,可能因为要解决一下问题,引用了第三方技术:rabbitMQ,fastDFS等,catch的异常不属于JVM异常,没有经过JVM序列化,RuntimeException会对异常进行封装,导致客户端不能从异常中获取有效信息,抛出后,提示的信息可能不是问题本身,我们不知道问题出在哪了。所以,itoo中用itooRuntimeException对捕获的异常进行序列化处理,在controller中就可以看到我们想看到的内容了。再想想面试官的问题,就会想到,在调用别的服务调不通时出现的异常,就会被itooRuntimeException捕获。


三、总结:

     异常处理,值得拥有!

     遇到问题,使用一项技术,多站在架构师的角度问自己一个为什么!






































相关文章
|
20天前
|
JavaScript NoSQL Java
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
169 96
接替此文【下篇-服务端+后台管理】优雅草蜻蜓z系统JAVA版暗影版为例-【蜻蜓z系列通用】-2025年全新项目整合搭建方式-这是独立吃透代码以后首次改变-独立PC版本vue版搭建教程-优雅草卓伊凡
|
22天前
|
前端开发 JavaScript Java
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
98 13
【03】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架搭建-服务端-后台管理-整体搭建-优雅草卓伊凡商业项目实战
|
23天前
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
83 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
3月前
|
Java 程序员
Java编程中的异常处理:从基础到高级
在Java的世界中,异常处理是代码健壮性的守护神。本文将带你从异常的基本概念出发,逐步深入到高级用法,探索如何优雅地处理程序中的错误和异常情况。通过实际案例,我们将一起学习如何编写更可靠、更易于维护的Java代码。准备好了吗?让我们一起踏上这段旅程,解锁Java异常处理的秘密!
|
22天前
|
SQL JavaScript 安全
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
69 11
【04】Java+若依+vue.js技术栈实现钱包积分管理系统项目-若依框架二次开发准备工作-以及建立初步后端目录菜单列-优雅草卓伊凡商业项目实战
|
26天前
|
人工智能 JavaScript 安全
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
86 13
【01】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-需求改为思维导图-设计数据库-确定基础架构和设计-优雅草卓伊凡商业项目实战
|
21天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
56 7
|
2月前
|
前端开发 Java 程序员
菜鸟之路day02-04拼图小游戏开发一一JAVA基础综合项目
本项目基于黑马程序员教程,涵盖面向对象进阶、继承、多态等知识,历时约24小时完成。项目去除了登录和注册模块,专注于单机游戏体验。使用Git进行版本管理,代码托管于Gitee。项目包含窗体搭建、事件监听、图片加载与打乱、交互逻辑实现、菜单功能及美化界面等内容。通过此项目,巩固了Java基础并提升了实际开发能力。 仓库地址:[https://gitee.com/zhang-tenglan/puzzlegame.git](https://gitee.com/zhang-tenglan/puzzlegame.git)
46 6
|
3月前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
868 8
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
2月前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
75 6

热门文章

最新文章