Java-异常处理

异常的概述

理想中你写的代码永远是正确的,用户也永远会规范的输入数据。但是,在现实生活中往往总会有一些问题的出现是不可预见的。
所以在Java中,将程序运行期间发生的不期而至的各种意外状况(除开发过程中的语法错误和逻辑错误)称为异常

异常的种类

Java异常是Throwable子类的实例化对象。Throwable有两个重要的子类:Exception(异常)和Error(错误)。二者都是Java异常处理的重要子类,各自又都包含大量子类。
在这里插入图片描述

1、Error类及其子类对象从技术上说不是异常,它们代表了程序运行时Java系统内部的错误,与程序设计者的操作无关。
2、Java将异常类Exception分为两类:运行时异常(RuntimeException)编译时异常。运行时异常包含其Runtime Exception类及其子类,而除此之外的Exception类及其子类属于编译时异常。

异常的处理

第一种方式:用户程序自定义异常和应用程序特定的异常,必须借助throw和throws语句来抛出异常

  1. throws语句
    throws用在声明方法时,表示该方法可能要抛出异常,调用者必须作出处理,捕获或者继续抛出异常(直至异常被处理或者异常抛到JVM,程序终止)。
(修饰符)(返回值类型)(方法名)(参数列表)throws Exception1,Exception2...{
	...
}
  1. throw语句
    java异常体系中的异常都是在运行时由系统抛出,用户自定义的异常必须自行抛出。
    throw语句,它抛出的不是异常类,而是异常对象,每次抛出一个对象(抛出异常是在异常发生之前,起到保护作用),一但抛出,程序终止。
throw new 异常类型;//抛出异常对象

第二种方式:使用try-catch-finally语句进行异常的捕捉。

try{
	//可能出现的异常
}catch(异常类型1 变量名1){
	//处理异常的方式1
}catch(异常类型2 变量名2{
	//处理异常的方式2
}
	...
	finally{
	//一定会执行的语句
	}

假设执行try语句块抛出异常,程序马上转到匹配成功的catch语句块执行,完成后会执行finally语句块,结束后再去执行后续代码。

自定义异常

某些特殊问题的处理,需要用到自定义异常并自行处理
自定义异常中至少定义两个构造方,一个是无参的构造方法,另一个是带String对象参数的构造方法,将此对象传递给父类Exception的相同构造方法。
自定义异常在程序中必须通过throw手动自行抛出

public class MyException extends Exception{
private String msj;

public  MyException(){
	super();
}

public  MyException(String msj){
	super(msj);
}
}
public class Test {
public void Test()throws MyException{

        throw new MyException("抛出自定义异常");
        }
}

public class Main {
    public static void main(String[] args) throws MyException {
        Test t = new Test();

            t.Test();
    
}
}

在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值