自定义异常 extends Exception

从大体来分异常为两块:

1、error---错误 : 是指程序无法处理的错误,表示应用程序运行时出现的重大错误。例如jvm运行时出现的OutOfMemoryError以及Socket编程时出现的端口占用等程序无法处理的错误。

2、Exception --- 异常 :异常可分为运行时异常跟编译异常

  •  1)运行时异常:即RuntimeException及其之类的异常。这类异常在代码编写的时候不会被编译器所检测出来,是可以不需要被捕获,但是程序员也可以根据需要进行捕获抛出。常见的RUNtimeException有:NullpointException(空指针异常),ClassCastException(类型转换异常),IndexOutOfBoundsException(数组越界异常)等。
  •  2)编译异常:RuntimeException以外的异常。这类异常在编译时编译器会提示需要捕获,如果不进行捕获则编译错误。常见编译异常有:IOException(流传输异常),SQLException(数据库操作异常)等。

3、java处理异常的机制:异常总是先被抛出,后被捕捉的。

在进行程序开发的过程中,自定义异常遵循以下四个步骤:

   1)首先创建自定义异常类,语法格式:自定义异常类名 extends Exception。

    2)在方法中通过关键字throw抛出异常对象。

    3)若是在当前抛出异常的方法中处理异常,可以用try-catch语句捕获并处理;若不是,在方法的声明处通过关键字throws指明要抛出给方法调用的异常。

    4)在出现异常方法的调用中捕获并处理异常。

4、throw  和 throws 区别 :

    1)throw : throw表示此处抛出一个已定义的异常(可以是自定义需继承Exception,也可以是java自己给出的异常类)

    2)throws :   throws表示一个方法声明可能抛出一个异常

5、捕获异常:

首先java对于异常捕获使用的是try---catch或try --- catch --- finally 代码块,程序会捕获try代码块里面的代码,若捕获到异常则进行catch代码块处理。若有finally则在catch处理后执行finally里面的代码。(finally 代码块中的代码无论是否执行了 catch代码块都会被执行)

使用异常类的 printStack() 方法来获取堆栈信息

请忽略类名大小写问题

注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。

创建自定义异常类时,通常需要继承`Exception`类或其子类,以便能够在代码中使用try-catch块或者throws语句来处理异常。 `Exception`类是Java中所有异常类的超类,它本身也是一个受检异常类(checked exception)。因此,当我们创建自定义异常类时,通常也会继承`Exception`类,以便让该异常类成为一个受检异常类。 以下是一个自定义异常类的示例,该异常类继承了`Exception`类: ```java public class MyException extends Exception { // 构造方法 public MyException() { super(); } public MyException(String message) { super(message); } } ``` 在上面的示例中,我们创建了一个名为`MyException`的自定义异常类,并且让它继承了`Exception`类。该类有两个构造方法,分别用于创建一个没有详细信息的异常对象和一个带有详细信息的异常对象。 通过继承`Exception`类,我们可以让`MyException`成为一个受检异常类,并且可以使用try-catch块或者throws语句来处理该异常。例如: ```java public void doSomething() throws MyException { // 抛出自定义异常 throw new MyException("Something wrong happened."); } public static void main(String[] args) { try { doSomething(); } catch (MyException e) { // 处理异常 e.printStackTrace(); } } ``` 在上面的示例中,`doSomething()`方法抛出了一个`MyException`异常,而在调用该方法时,我们使用了try-catch块来捕获该异常并进行处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值