当前位置: 首页 > news >正文

电脑做h5比较好的网站软件项目管理案例教程第四版答案

电脑做h5比较好的网站,软件项目管理案例教程第四版答案,网业分离是什么,广州网站制作电话接上篇#xff1a;后端项目操作数据库-中枢组件Service调用Mapper 自定义异常#xff1a; 手动抛出异常#xff0c;为了后续统一捕获#xff0c;需要异常自定义#xff1b; 如#xff1a;当使用抛出异常的方式表示“操作失败”时#xff0c;为了后续统一捕获#xff0c…接上篇后端项目操作数据库-中枢组件Service调用Mapper 自定义异常 手动抛出异常为了后续统一捕获需要异常自定义 如当使用抛出异常的方式表示“操作失败”时为了后续统一捕获自定义的异常符合该处理的情景。 1.RuntimeException检查异常非检查异常 在 Java 中RuntimeException 及其子类的异常被称为非检查异常Unchecked Exception而其他的异常如 IOException 或 SQLException 等则被称为检查异常Checked Exception。 对于非检查异常通常是由程序员编写的代码错误引起的如空指针异常或数组越界异常等。因此如果程序出现这些异常通常意味着程序的实现存在问题需要在代码中进行改进。 相比之下检查异常则需要在方法的声明或方法调用者的声明中声明抛出此异常。因为检查异常通常由外部因素如文件操作、网络请求等引起并且需要在编写代码时考虑异常处理的情况。可能会导致程序无法正常工作所以编码时必须将这些异常捕获或向上抛出来保证程序的稳定性和可靠性。 2.后端建议自定义异常继承RuntimeException 自定义异常必须继承自某个已存在的异常类型强烈建议继承RuntimeException其原因有二 原因1 在项目中要想统一处理全局异常则Service组件、Controller组件都必须抛出异常才能由Spring MVC框架捕获到异常进而通过全局异常处理器进行统一的处理 RuntimeException不会受到异常的相关语句约束而非RuntimeException一旦被抛出方法的声明、方法的调用者的声明等都需要声明抛出此异常。 由于抛出异常是固定的做法没有必要在各个方法上都声明抛出此异常所以应该使用RuntimeException 原因2 配合Spring JDBC框架实现事务管理 3.异常分类 Java异常体系可以分为以下几个层次 ThrowableThrowable 是所有异常的根类它有两个直接子类 Error 和 Exception。 ErrorError 表示系统级别的错误或无法恢复的错误一般在程序中不捕获和处理 Error例如 OutOfMemoryError内存不足和 StackOverflowError栈溢出。 ExceptionException 表示程序运行时的异常情况是开发者通常需要处理的异常。Exception 下面又分为两种类型RuntimeException 和非 RuntimeException。 RuntimeExceptionRuntimeException 是非检查异常也称为运行时异常它们不需要在编码时显式地处理或声明。常见的 RuntimeException 有 NullPointerException空指针异常和 ArrayIndexOutOfBoundsException数组越界异常。 非 RuntimeException非运行时异常是必须进行显示的处理或声明的异常。这种异常是通过 Java 编译器检查的编译器要求你必须捕获或向上抛出这些异常。常见的非 RuntimeException 有 IOException输入输出异常和 ClassNotFoundException类未找到异常。 根据这样的分类开发者可以选择性地处理或声明异常。对于 RuntimeException可以选择不捕获而对于非 RuntimeException必须在代码中显式地捕获或声明否则程序无法通过编译。 4.自定义异常-举例 每次抛出异常都应该是出现了某种“错误”应该对此“错误”进行描述关于此描述应该是“谁抛出谁描述” 应该在自定义异常类中添加基于父类异常的带String message参数的构造方法例如 public class ServiceException extends RuntimeException {// 关键需要此构造方法public ServiceException(String message) {super(message);} }后续抛出异常时应该通过以上构造方法封装对异常的描述 // 检查相册名称是否已经被占用 String name albumAddNewDTO.getName(); int countByName albumMapper.countByName(name); if (countByName 0) {String message 添加相册失败相册名称已经被占用;log.warn(message);throw new ServiceException(message); // 【调整】在构造方法中封装message }后续捕获异常的位置将不再需要“猜测”出现异常的原因而是从捕获到的异常对象中直接获取以上封装的描述信息即可 try {service.addNew(album);log.debug(添加相册成功); } catch (ServiceException e) {log.debug(捕获到异常其中的消息{}, e.getMessage()); // 【调整】从异常对象中获取信息 }参考异常体系之RuntimeException解析 声明部分代码来自有网络文章只供学习参考 创造价值乐哉分享
http://www.zqtcl.cn/news/964127/

相关文章:

  • 高端学校网站建设做网站是怎么赚钱的
  • 哪里可以找人做网站在服务器上中的asp网站后台能输入帐号无法进入
  • 怎么网站关键词语有哪些
  • 网站建设 维护费用环球易购招聘网站建设
  • 怎么做网站官方电话手机应用开发平台
  • 济南企业免费建站剪辑视频怎么学
  • 手表网站免费设计上海做网站制作
  • 深圳网站seo优化课程设计做淘宝网站的目的
  • 机械网站建设中心莱芜论坛莱芜都市网
  • 58同城类似的网站怎么做seo做的比较好的公司
  • 厦门网站建设培训学校网站程序定制开发流程
  • 宣传旅游网站建设的观点是什么资阳网站建设方案
  • ui设计与网站建设怎么建设一个手机网站
  • 网站建设加推广优化网站移动端开发公司
  • 猪八戒网站开发电子商务公司取名字参考大全
  • 酒泉手机网站建设大连网站如何制作
  • 做网站点子免费做简历的软件网站
  • 刘涛做代言的那个网站设计与制作
  • 专业网站建站星辰wordpress主题
  • 淄博个人网站建设天津网站制作机玩法部
  • 帮人做图挣外快的网站seo优化教学视频
  • 做房产中介需要有内部网站吗烟台开发区网站建设
  • 网站资质优化网站备案密码使用
  • 廊坊营销网站团队网站推广报告
  • 商品网站模板多语言企业网站模板
  • 佛山网页制作设计东莞seo推广机构帖子
  • 公司网站开发费用如何入账网站开发与设计实训总结两千字
  • 生物网站模板在线crm厂商
  • 在线制作动画网站ps切图做网站
  • 西安企业网站建设公司虚拟主机可以做视频网站嘛