Java 异常分类

Throwable类有两个直接子类:

  • Exception:出现的问题是可以被捕获的;
  • Error:系统错误,通常由JVM处理。

可捕获的异常又可以分为两类:

(1)checked异常: 直接派生自Exception的异常类,必须被捕获或再次声明抛出。

  • 无能为力、引起注意型 --- 如SQLException(字段超长),只需要保存异常线程,人工介入解决。
  • 可以处置型 --- 如发生未授权异常(UnAuthorizedException),可以跳转至权限申请页面。

(2)unchecked异常( RuntimeException):派生自RuntimeException的异常类。使用throw语句可以随时抛出这种异常对象。

throw new ArithmeticException(…);

  • 可预测异常(Predicted Exception)--- 如IndexOutOfBoundsException、NullPointerException,应该提前做好边界检查、空指针判断。
  • 需捕捉异常(Caution Exception) --- 如DubboTimeoutException,客户端必须显式处理,可以重试或者降级处理等等。
  • 可透出异常(Ignored Exception)--- 框架或系统产生的,且会自行处理,而程序无须关心。

异常抛出设计:

  • 对外提供的开发接口,建议使用错误码;
  • 公司内部跨应用远程服务调用,优先考虑使用Result 对象来封装错误码、错误描述信息;
  • 应用内部,则推荐直接抛出异常对象;

防止NPE(NullPointerException),一定是调用方的责任,需要调用方进行事先判断。

两个关键字 throw 和throws 的区别

throw new Exception(...);

  • throw -- 在方法内部抛出具体异常类对象的关键字;
  • throws -- 用在方法signature 上,表示方法调用者可以此方法声明向上抛出异常对象。

throw new exception 后程序未中断_Java异常Exception-checked、unchecked相关推荐

  1. Java异常的根类似_Java异常(Exception)类型及处理

    Java中的异常全部都是以对象形式存在的,一旦某句代码发生异常,会在该代码处生成一个异常对象,然后以堆栈式抛出,若不对该异常对象进行处理,最终导致程序终止运行. Java语言异常分类 编译时异常(受检 ...

  2. java exception子类_Java异常 Exception类及其子类(实例讲解)

    C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象. Java异常处理通过5个关键字try.ca ...

  3. java异常 子类_Java异常 Exception类及其子类(实例讲解)

    C语言时用if...else...来控制异常,Java语言所有的异常都可以用一个类来表示,不同类型的异常对应不同的子类异常,每个异常都对应一个异常类的对象. Java异常处理通过5个关键字try.ca ...

  4. java 异常处理的关键字_java异常,异常处理,异常类 关键字:throws 和 throw 自定义的异常类...

    packagecn.kecheng;importjava.util.Scanner;/**异常:异常是指在程序的运行过程中所发生的不正常的情况,它会中断正在运行的程序 异常处理机制:java中通过异常 ...

  5. java程序启动打印_JAVA打印问题:程序正常运行,打印机无反应

    我需要打印一份TXT文件,但是运行后程序未出现异常,打印机却没有反应.打印机在其他地方都是正常工作的.求解为什么???打印机型号:GprinterGP-9035T代码:importjava.awt.G ...

  6. java异常类型和基本处理原则_Java异常控制机制和异常处理原则

    Java异常控制机制又被称为"违例控制机制". 捕获程序错误最理想的时机是在编译阶段,这样可以彻底避免错误的代码运行.但并非所有的错误都能在编译期间侦测到,有些问题必须在运行期间解 ...

  7. WinForm捕获全局异常(捕获未处理的异常)

    背景 我们在做WinForm程序的时候,一般都是对异常进行处理,但是,我们要防止不小心出现未知异常,导致软件崩溃.也可采集系统未知的异常信息,防止出现异常,也无法下手.于是就有了如这篇文章标题所述的一 ...

  8. PL/SQL 08 异常 exception

    --PL/SQL错误   编译时   运行时 --运行时的出错处理   EXCEPTION --异常处理块 DECLARE  - BEGIN  - EXCEPTION  WHEN OTHERS THE ...

  9. android打包apk不能安装程序,Android Studio 打包apk后应用未安装

    本文转载地址 http://blog.csdn.net/sinat_14849739/article/details/76383281 前言 Android 要求所有 APK 必须先使用证书进行数字签 ...

  10. java简单的异常_Java的简单理解(8)-异常(Exception)

    Java 异常处理 异常处理机制是Java语言中一个独特之处,它为开发稳定的软件系统提供了有力的支持.它主要使用捕获异常和声明抛弃异常两种方法来处理程序中可能出现异常的语句块,其中捕获异常的方法是一种 ...

最新文章

  1. linux 多进程 多线程的选择
  2. python3库下载_下载安装Python第三方库的方法,最全方式,值得收藏
  3. 从研究到应用:腾讯AI Lab的自然语言理解和生成
  4. “睡服”面试官系列第五篇之proxy(建议收藏学习)
  5. kafka中topic默认属性_分享:Kafka 的 Lag 计算误区及正确实现
  6. 分拣外观残缺的机器人_一款分拣搬运机器人的设计
  7. RocketMQ之事务消息
  8. PHP 8 中确认支持 JIT!
  9. 面试常问的深度学习(DNN、CNN、RNN)的相关问题
  10. JSP使用教程(第四版)学习笔记
  11. php版本微信公众号开发
  12. 架构思维成长系列教程(十二)- 云平台架构设计
  13. 简单c语言实现小猫钓鱼
  14. JQuery 日期选择框,精确到时分秒类型。
  15. 四川华巨同诚:拼多多怎么规避店铺降权的问题
  16. MBA联考-20101227
  17. HarmonyOS之AI能力·语音识别技术
  18. 单片机旋转led程序c语言,[ 单片机 ] 旋转LED制做过程
  19. Facebook的语音助手Aloha疑曝光
  20. linux and windows 双系统启动(详细情况分类说明)

热门文章

  1. 调出远程桌面的任务管理器
  2. hdu 1709 母函数变形
  3. jQuery MVC 科室异步联动
  4. RTT distribution of Internet
  5. [Flex]打造属于自己的Apollo(二)
  6. 初识Jasima-调度仿真系列教程预告
  7. 【OpenCV学习笔记】【教程翻译】一(基于SVM和神经网络的车牌识别概述)
  8. Python日期类的实现
  9. ArcGIS投影坐标转经纬度坐标
  10. c++中的堆(优先级队列 priority_queue)