博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
20130617—认识异常
阅读量:5244 次
发布时间:2019-06-14

本文共 1113 字,大约阅读时间需要 3 分钟。

1.异常是什么?

  异常简单而言就是一种指令流,什么指令流让程序中断的指令流。合起来:异常是一种让程序中断的指令流。在正常情况下,如果没有处理,那么程序在出现异常的情况下,程序将中断执行,退出程序。

2.既然有异常那么该如何处理。

  通常而言,对异常的处理均采用的方法为try---catch---finally 的搭配完成。try 用于捕获异常,catch用于匹配异常,finally程序的最终出口。当程序某个地方可能出现异常时,通过采用try去捕获异常,如果有异常则try异 常下的语句不在执行,到catch处去匹配异常进行处理,如果有finally则最终出口执行以下,但整个程序不会出现中断,会完整的执行完毕,并将异常 打印出来,或者记录日志。

3.异常的处理流程

   异常出现后具体的处理流程是怎样进行的呢?首先让我们认识一下大体的异常:

java.lang.Object

  java.lang.Throwable
      java.lang.Exception
          java.lang.RuntimeException
              java.lang.ArithmeticException

    从上面可以看出,异常的最大父类为Throwable,那么我们在看下Throwable:

  

 

继承者

java.lang.Throwable
所有已实现的接口:
直接已知子类:
,
  可以看出其下又两个子类分别为:Error,Exception
  Error:JVM产生的错误,即:程序还没有运行时候产生的错误,用户无法去处理。
  Exception:表示程序运行时候产生的异常,用户是可以进行处理的。
  一般而言,所指的异常通常都是Exception的子类,因此可以对异常进行向上转型,来建立自己的异常类型,异常处理流程如下图所示:
 
程序在发生异常的时候会产生一个异常类的实例化对象,由JVM产生的,然后将这个实例化对象与catch中的实力对象进行匹配,catch就可以当做一个方法,然后传递了一个引用对象为异常类实例化对象然后看是否instanceof匹配与否。
4。注意:
   (1)异常的捕获通常要细分匹配异常,不能统一用Exception来捕获,必须细分异常,指定什么样的异常,是
ArithmeticException 还是其它的,必须细分。。。
    (2)异常在细分后,在catch进行异常匹配的时候,注意了,必须是范围由小到大的,比如说Exception是普通异常的父类,则应该放到最后去。
今天就到这里了,不早了,明天还得上班,明天在继续学习。
              为了梦想,努力奋斗!

 

转载于:https://www.cnblogs.com/pony1223/p/3141384.html

你可能感兴趣的文章
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
桥接模式-Bridge(Java实现)
查看>>
303. Range Sum Query - Immutable
查看>>
【★】浅谈计算机与随机数
查看>>
Leetcode 226: Invert Binary Tree
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
前台freemark获取后台的值
查看>>
Leetcode: Unique Binary Search Trees II
查看>>
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
查看>>
Spring-hibernate整合
查看>>
c++ map
查看>>
exit和return的区别
查看>>
Django 相关
查看>>
git init
查看>>
训练记录
查看>>
IList和DataSet性能差别 转自 http://blog.csdn.net/ilovemsdn/article/details/2954335
查看>>
Hive教程(1)
查看>>