java程序在执行过程中所发生异常事件可分为两类 Error:Java虚拟机无法解决的严重问题。如:JVM内部错误,资源耗尽等严重情况,比如:StackOverflowError,一般不编写针对性的代码进行处理 Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如: 出现这些异常的时候就需要我们分析程序,找出现异常的代码,进行异常处理。 java.lang.Throwable —–java.lang.Error:一般不编写针对性代码进行处理 —–java.lang.Exception:可以进行异常处理 在执行javac.exe命令时,可能出现的异常 执行java.exe命令时,出现的异常。 过程一:”抛”:程序在正常执行过程中,一旦出现异常, 就是在异常代码处生成一个对应异常类的对象,并将从抛出,一旦抛出对象以后,其后代码就不再执行。 过程二:”抓”:可以理解为异常处理方式: ①try-catch-finally ②thorws+异常处理 ① String getMessage() ; ② printStackTrace(); 注意1:使用try-catch-finally处理编译时异常,是得程序在编译时就不再报错,但是运行时仍可能报错。 相当于我们使用try-catch-finally将一个编译时可能出现的异常,延迟到运行时出现。 注意2:开发中,由于运行时异常比较常见,所以我们通常就不针对运行时异常编写try-catch-finally了。 针对于编译时异常,我们说一定要考虑异常的处理。 ①如果父类中被重写的方法没有throws 方式处理异常,则子类重写方法也不能使用throws, 意味着如果子类重写的方法中有异常,必须使用try-catch-finally方式处理 ②执行的方法中,先后有调用了另外的几个方法,这几个方式递进关系执行的, throw是在程序运行过程中,对程序的异常进行抛出,生成异常对象,声明在方法体中,如果在程序执行过程中,执行到throw,之后的语句立即停止。 参考文献 通过实例可以看出,throws可以抛出的异常有多种,而throw只能抛出一种具体的异常。 说白了就是根据自己的需求封装一个异常类。 一、概述
public static void main(String[] args) { //1.栈溢出:java.lang.StackOverflowError main(args); //2.堆溢出 Integer[]arr=new Integer[1024*1024*1024]; }
二、异常体系结构
1.编译时异常和运行时异常
三、异常处理类型
自动处理
1.try-catch-finally
结构
try{ //可能出现异常的代码 }catch(异常类型1 变量名1){ //处理异常的方式1 }catch(异常类型2 变量名2){ //处理异常的方式2 }catch(异常类型3 变量名3){ //处理异常的方式3 } finally{ //一定会执行的代码 }
异常处理:抓抛模型
说明:
2.try-catch-finally中finally的使用
@Test public void testMethod(){ int num = method(); System.out.println(num); } public int method(){ try{ int[] arr = new int[10]; System.out.println(arr[10]); return 1; }catch(ArrayIndexOutOfBoundsException e){ e.printStackTrace(); return 2; }finally{ System.out.println("我一定会被执行"); return 3; } }
3.thorws+异常处理
手动处理
1、throw
2.throw和throws的关系
class Student{ private int id; public void regist(int id) throws Exception { if(id>0) { this.id=id; }else { //System.out.println("您输入的数据非法!"); //throw new RuntimeExecption("您输入的数据非法!"); //throw new Exception("您输入的数据非法!"); throw new MyException("不能输入负数"); } }
四、自定义异常类
public class MyException extends RuntimeException { static final long serialVerionUID=-7034897193246939L; public MyException() { } public MyException(String msg) { super(msg); } }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算