IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JAVA异常处理 -> 正文阅读

[Java知识库]JAVA异常处理

JAVA异常处理

前言

在编写程序的过程中,即使经验再丰富的程序员也不可避免的会出现错误,出现错误一般有三种情况:语法错误、逻辑错误、运行错误。语法错误是由于没有遵循Java的语言规则引起的,通过前面的学习,我们知道这种错误一般可以有编译器提醒解决,而逻辑错误也就是常见的BUG出现的状况,这只有在运行时一步步调试运行来解决。而运行错误,则是在程序运行时出现严重不可解决韦恩导致程序终止运行的错误,如:除数为0,数组下标越界、需要存取的文件不存在或网络突然中断等。通常这种情况称为异常。对于异常的处理则为一场处理

学习目标

1.理解异常处理的概念
2.熟悉异常类型
3.掌握如何在方法中声明异常
4.掌握如何在方法中抛出异常
5.使用try…catch代码处理异常
6.创建自己的异常类
7.在try catch 代码块中使用finally子句

1.异常与异常类型

按照异常在编译时是否被检测来分可以分为两大类
1.受检异常(编译时被检测到的错误)
2.非受检异常(Runtime Exception和Error)

2.异常处理

为避免出现异常导致中止执行,Java提供了相应得机制进行处理,当一个程序抛出异常后,将会回溯到第一个由catch的地方进行处理;

异常处理程序的基本形式
method()throws Exceptionl,Exception2,...
{
  ...
  try
  {
     ...程序块
  }
  catch(Exception1 e1)
  {
    //对Exceptionl e1处理
  }
}

2.1 声明异常

声明异常时当方法执行时,声明方法可能出现的异常。因为任何代码都有可能出现系统错误和运行异常,所以Java 不需要在任何方法中显式声明Error和RuntimeException。但是,如果方法出现其他异常,则必须在方法声明中显示声明它们。

异常声明 method()throws Exception
public class TestThrows
{
   static void array(int size)throw NegativeArraySizeException,
   ArratIndexOutOfBoundsException
   {
       int [] a=new int[size];
       System.out.println(a[10]);
   }
   static void test()
   {
     array(-1);
   }
   public static void main(String[] args)
   {
     try{
        test();
     }catch (ArrayIndexOutBoundsException e)
     {
       System.out.println("数组越界");
     }
   }
}

2.2 抛出异常

在声明方法中如果出现异常,可以通过关键字throw 来抛出异常对象,抛出异常的语法如下

throw new ConstructorException();

ConstryctorException()是指异常类的构造方法。通过new ConstructException()来构造一个异常类的对象,再通过throw来抛出这个对象。要注意的是:一个方法只能抛出方法声明中的异常,或者Error、RuntimeException 和两者的子类

public class TestThrow
{
   void method(){//抛出ArithmeticException 异常,合法
      throw new ArithmeticException();//ArithmeticException为RuntimeException子类
   }
   void method2(){//抛出一个IOException 异常,不合法
     throw new IOExcepetion()}
}

2.3捕获异常

通过上面介绍,我们知道了如何声明异常、如何抛出异常。下面我们将介绍如何捕获异常。在Java语言中,用try…catch语句来捕获异常。格式如下:

try{
//可能会出现异常情况的代码;
}catch(Exceptionl e){
}
catch(Exceptionl2 e)
{
 //处理Exception2异常
}

如果在try子句执行期间没有出现异常,则跳过catch子句,如果try代码块中的语句抛出异常,Java则跳过剩下的语句,并开始搜索异常处理程序,一旦异常与catch子句中列出的其中一个异常匹配,则执行catch子句的代码;如果异常类型与catch子句中任何异常都不匹配,Java将退出该方法,并把异常传递到调用该方法的方法,并继续执行相同的过程来查找处理程序,如果在正被调用的方法链中没有找到处理程序,程序将会中止。

3.重新抛出异常

当方法中出现异常时,如果没有捕捉到异常,方法就立即退出,如果在退出钱需要方法执行某个任务,那么就可以捕捉方法中的异常,任何重新把它抛出给结构中实际处理程序

try{
可能出现异常情况的代码
}catch(Exception e){
  //处理出现的Exception异常
  throw e//重新抛出异常
}

在重新抛出异常中,要需要注意以下几点
(1)程序执行到throw 时立刻终止,不在执行它后面的语句
(2)在包含throw语句的try块后面寻找其匹配的catch子句来捕获异常
(3)如果找不到则向上一层程序JVM来处理。

4.finally

finally子句中的语句不管是否异常是否被抛出都要执行,也就是就算throw一个异常catch接受处理以后也要执行finally中的语句。

5.自定义异常

Java提供许多异常类,但是Java所提供的异常类无法合适的描述我们所遇到的问题时,我们就可以自定义异常。
以下时需要注意的几个点

1) 自定义异常需要继承Exception以及其子类
(2)若要抛出自定义的异常对象,则使用throw 关键字
(3)若要抛出自定义异常,需要将所调用的方法定义为可抛出异常的方法。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-10-24 14:48:21  更:2021-10-24 14:49:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:54:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码