Java知识点04:异常处理

一、异常的概念

如果某个方法不能按照正常的途径完成任务,就可以通过另一种路径退出方法。在这种情况下,会抛出一个封装了错误信息的对象。此时,这个方法会立刻退出同时不返回任何值。另外,调用这个方法的其他代码也无法继续执行,异常处理机制会将代码执行交给异常处理器。

二、异常的分类

借鉴一个网上找到的图来进行说明:
Java知识点04:异常处理_第1张图片

异常分为:Error和Exception,它们都继承自Throwable

//Error类
public class Error extends Throwable {

//Exception类
public class Exception extends Throwable {

Exception 可分为 运行时异常(RuntimeException)检查异常(CheckedException)

RuntimeException:如 NullPointerException 、 ClassCastException

CheckedException:如 IOException、SQLException

三、异常的处理方式
throw、throws、系统自动抛出异常

  • 1、throw用于抛出异常,在方法内部通过throw抛出异常对象。
public static void main(String[] args) {
        String s = "hello";
        if (s.equals("hello")){
            throw new NumberFormatException();
        }else{
            System.out.println(s);
        }
}
  • 2、throws关键字可以在方法上声明该方法要抛出的异常。
public static void main(String[] args) throws  RuntimeException{
  • 3、try…catch…finally
    try是用于检测被包住的语句块是否出现异常,如果有异常,则抛出异常,并执行catch语句。

    cacth用于捕获从try中抛出的异常并作出处理。

    finally语句块是不管有没有出现异常都要执行的内容。

public static int del(){
        int a = 0;
        try { //用于捕获异常
            int b = 10/a;
            return b;
        }catch (Exception e){ //执行try捕获到的异常
            return 1;
        }finally { //有没有异常都要执行
            return 2;
        }
}

最终输出结果为:2

四、throw和throws的区别

  • 1、使用的位置:throws用在函数方法上,后面跟的是异常类;throw用在函数内,后面跟的是异常对象。
  • 2、throws表示出现异常的一种可能性,并不一定会发生异常;throw则是抛出了异常,执行throw则一定要抛出了某种异常对象。
  • 3、throws用来声明异常,让调用者只知道该功能可能出现问题,可以预先的处理方式;throw抛出具体的问题对象,执行到throw,功能就已经结束了。

你可能感兴趣的:(Java知识点,java面试题,java)