1. package shb.java.exception;
  2. /**
  3. * 测试异常类
  4. * @Package:shb.java.exception
  5. * @Description:
  6. * @author shaobn
  7. * @Date 2015-9-7上午11:52:42
  8. */
  9. public class Demo_2 {
  10. public static void main(String[] args) {
  11. testTD_5();
  12. }
  13. public static void testTD_2(){
  14. TDemo_2 td_2 = new TDemo_2();
  15. try {
  16. td_2.getResult(9, 0);//一旦发生异常,函数中后面的方法不再执行即结束
  17. System.out.println("over");//发生异常后,此句已不能再执行。 直接抛出异常对象,由catch块中异常对象的引用来接收。
  18. } /*catch (Exception e) {
  19. // TODO: handle exception
  20. System.out.println(e.getMessage());
  21. }*///如果一开始就用Exception会覆盖子异常类,则会只执行Exception,其余都不能执行。
  22. catch (ArithmeticException ae) {
  23. // TODO: handle exception
  24. System.out.println(ae.getMessage());
  25. System.out.println("算术异常");
  26. }catch (ArrayIndexOutOfBoundsException aiobe) {
  27. // TODO: handle exception
  28. System.out.println(aiobe.getMessage());
  29. System.out.println("数组越界异常");
  30. }
  31. System.out.println("helloworld");
  32. }
  33. //自定义异常类
  34. public static void testTD_3(){
  35. TDemo_3 td_3 = new TDemo_3();
  36. try {
  37. td_3.getResult_3(9, 0);
  38. System.out.println("over");
  39. } catch (Exception e) {
  40. // TODO: handle exception
  41. System.out.println(e.getMessage());
  42. }
  43. System.out.println("hellobeijing");
  44. }
  45. //自定义的继承RuntimeException类的异常(编译时是不报错的,运行时检查异常)
  46. public static void testTD_4(){
  47.  
  48. TDemo_4 td_4 = new TDemo_4();
  49. td_4.getResult(9, 0);
  50. }
  51. public static void testTD_5(){
  52. TDemo_5 td_5 = new TDemo_5();
  53. try {
  54. td_5.testMethod();
  55. } catch (Exception e) {
  56. // TODO: handle exception
  57. System.out.println("异常已经处理");
  58. }
  59. }
  60. }
  61. class TDemo_2{
  62. private int age = 10;
  63. public int getAge(){
  64. return this.age;
  65. }
  66. //声明两个异常,算术异常,数组越界异常。
  67. public int getResult(int a,int b) throws ArithmeticException,
  68. ArrayIndexOutOfBoundsException{
  69. byte[] arr = new byte[a];
  70. b = a/b;
  71. arr[a] = 9;
  72. return a/b;
  73. }
  74. }
  75. class TDemo_3{
  76. private int height = 90;
  77. public int getHeight(){
  78. return this.height;
  79. }
  80. public int getResult_3(int a,int b) throws TDemo_3Exception{
  81. if(b==0)
  82. //抛出自定义异常,必须在方法上声明异常类。
  83. throw new TDemo_3Exception("自定义的异常类");
  84. return a/b;
  85. }
  86. }
  87. //编译时被检测的异常
  88. class TDemo_3Exception extends Exception{
  89. public TDemo_3Exception(String str){
  90. super(str);
  91. }
  92. //重写getMessage()方法
  93. public String getMessage(){
  94. return super.getMessage();
  95. }
  96.  
  97. }
  98. //编译时不被检测的异常
  99. class TDemo_4Exception extends RuntimeException{
  100. public TDemo_4Exception(String str){
  101. super(str);
  102. }
  103. }
  104. class TDemo_4{
  105. private int with = 90;
  106. public int getWith(){
  107. return this.with;
  108. }
  109. public int getResult(int a,int b){
  110. if(b==0)
  111. throw new TDemo_4Exception("自定义的runtime异常");
  112. return a/b;
  113.  
  114. }
  115. public void testResult(int a,int b){
  116. if(b<0)
  117. throw new TDemo_4Exception("b小于0");
  118. System.out.println("测试成功");
  119. }
  120.  
  121. }
  122. class TDemo_5Exception extends Exception{
  123.  
  124. public TDemo_5Exception(String str){
  125. super(str);
  126. }
  127.  
  128. }
  129. class TDemo_5{
  130. public void testMethod() throws TDemo_5Exception{
  131. TDemo_4 td_4 = new TDemo_4();
  132. try {
  133. td_4.testResult(9, -1);
  134. } catch (Exception e) {
  135. // TODO: handle exception
  136. throw new TDemo_5Exception("处理失败");
  137. }
  138.  
  139. }
  140. }

java异常类的更多相关文章

  1. 面试准备(三) Java 异常类层次结构

    在Java中,异常分为受检查的异常,与运行时异常. 两者都在异常类层次结构中.这类容易出选择题 考试你是否掌握了异常类并清楚哪些异常类必须捕获 下面的图展示了Java异常类的继承关系. 图1 粉红色的 ...

  2. Java 异常类层次结构

    在Java中,异常分为受检查的异常,与运行时异常. 两者都在异常类层次结构中. 下面的图展示了Java异常类的继承关系. 图1 粉红色的是受检查的异常(checked exceptions),其必须被 ...

  3. java——异常类、异常捕获、finally、异常抛出、自定义异常

    编译错误:由于编写程序不符合程序的语法规定而导致的语法问题. 运行错误:能够顺利的编译通过,但是在程序运行过程中产生的错误. java异常类都是由Throwable类派生而来的,派生出来的两个分支分别 ...

  4. Java异常类(Throwable)

    一.异常类体系 二.异常类由来与定义 [异常类的由来]:Java把程序在运行时出现的各种不正常情况也看成了对象, 提取属性和行为进行描述,比如异常名称,异常信息,异常发生位置,从而形成了各种异常类 [ ...

  5. Java异常类复习总结

    个人理解先行: 异常类是当在程序出现问题时抛出的一个警告.提示你程序设计或者代码有存在错误的地方. 异常类和Error都继承自Throwable, Throwable继承自Object类. Runti ...

  6. 课堂动手动脑验证以及自定义异常类实现对异常处理——java异常类

    异常(exception):发生在程序执行期间,表明出现了一个非法运行的情况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象.例如:数组越界和被0除. 代码验证: package test ...

  7. Java异常类及处理

    异常概述:运行时发生的不正常情况 在java中用类的形式对不正常的情况进行了描述和封装对象. 描述不正常的类,称之为异常类. 异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述 ...

  8. java -> 异常类与自定义异常

    异常 什么是异常?Java代码在运行时期发生的问题就是异常. 在Java中,把异常信息封装成了一个类.当出现了问题时,就会创建异常类对象并抛出异常相关的信息(如异常出现的位置.原因等). 异常的继承体 ...

  9. java异常类的妙用

    异常类的妙用   以往在使用异常时,只是知道通过异常类的构造方法设置一些出错信息,此外最多就是把引起该异常的原因通过Throwable类的子类一同设置进去.今天在分析springSecurity3.0 ...

随机推荐

  1. 删除本地git版本库中受版本控制的文件

     git乱码解决方案汇总 乱码原因 搜索一番,发现git文件名.log乱码,是普遍问题,这其中有编码的原因,也有跨平台的原因.主要原因是Windows 系统中的Git对中文文件名采用不同的编码保存所致 ...

  2. php--yii框架表单验证

    在视图层利用表单小部件生成表单时,field只能是数据库中存在的, 例如: use yii\helpers\Html; use yii\widgets\ActiveForm; use yii\capt ...

  3. ArcGIS API for Silverlight加载google地图(后续篇)

    原文:ArcGIS API for Silverlight加载google地图(后续篇) 之前在博客中(http://blog.csdn.net/taomanman/article/details/8 ...

  4. magento去掉add to cmpre和email to friend

    修改:\app\design\frontend\default\blanco\template\catalog\product下list.phtml 和app\design\frontend\defa ...

  5. JS之Array.slice()方法

    1.Array.slice(startIndex,endIndex); 返回由原始数组从startIndex到endIndex-1的元素构成的新数组; startIndex:默认值0,如果startI ...

  6. 安装sqlserver2008r2 服务器配置,服务帐户配置出错,提示Sql server服务指定的凭据无效

    win+X 点击运行 重置帐户密码使得sql server2008 的服务帐户名,密码与系统设置的Administrator名与密码一致,则可. 上图中有一项reporting的名字不同,该名字为自动 ...

  7. JMeter学习-013-JMeter 逻辑控制器之-如果(If)控制器

    前文简述了 JMeter 如何通过 HTTP Cookie管理器,实现了在不执行登录操作的情况下,通过 Cookie 实现登录态的操作,具体请参阅:JMeter学习-012-JMeter 配置元件之- ...

  8. Selenium2学习-012-WebUI自动化实战实例-010-解决元素失效:StaleElementReferenceException: stale element reference: element is not attached to the page document

    元素失效的想象提示信息如下图所示,此种问题通常是因为元素页面刷新之后,为重新获取元素导致的. 解决此类问题比较简单,只需要在页面刷新之后,重新获取一下元素,就可以消除此种错误了. 以下以易迅网搜索为例 ...

  9. Shell数组例子

    Shell数组例子 循环打印数组,并统计数组的个数: [root@slavedb array]# cat a.sh #!/bin/bash array=( freddy freddie tang sh ...

  10. python中几个常用的算术函数

    1.lambda函数(匿名函数) lambda函数使用方式:lambda[参数1,参数2....]:表达式,列表 实例如下: lambda x : x * 2,[1,2,3,4] lambda 2.r ...