JAVA014--异常

来源:互联网 发布:淘宝灰色退款思路 编辑:程序博客网 时间:2024/06/15 12:43

错误和异常

import java.io.File;
import java.io.FileInputStream;

public class TestMain {

public static void main(String[] args) {    // TODO Auto-generated method stub    //错误(Error):    //语法错误---在编译期报错,修改为正确的语法

// TestMain.test();
//逻辑错误–编译不报错、运行也不报错,但结果不是我们需要的,往往是算法问题
//运行时错误–在运行期报错,报错类型名字后面是Error,往往是硬件问题或环境问题,无法用异常处理机制解决
// test(5);

    //异常(Exception)    //运行时异常(未检查异常,UnCheckedException)--在运行期报错,报错类型名字后面是Exception,可以使用异常处理机制

// int[] array = new int[5];
// System.out.println(array[5]);
//编译时异常(检查异常,CheckedException)
// FileInputStream fis = new FileInputStream(“D:/hello.txt”);
}

public static void test(int a){    System.out.println("Hello");    test(10);}

异常的处理

  • 运行时异常 1.修改源代码,将异常情况规避(最好的解决方式)。2.使用异常捕获机制(try-catch-finally)
  • 编译时异常 一个方法在声明部分书写throws xxxException,以至于调用者在编译时受到警告(编译不通过)强制要求调用者进行处理(1.往上抛,2.使用try-catch)

finally 块

不管是否发生异常,都必须要执行的代码,不管是否有break,还是return。优先执行。通常用于资源的管理,通道的关闭,内存回收。

throw和throws的区别

  • throw 1.写在方法中,后面跟着异常对象 2.只能跟一个对象 3.一旦执行到这句代码,一定会发生异常。
  • throws 1.写在方法声明最后,后面跟着异常类名。2.可以有多个异常类名,用逗号分隔。3.表明本方法有可能发生某个异常

import java.util.InputMismatchException;
import java.util.Scanner;

public class ClassB {

//throws 书写在方法声明的最后//throws 后面跟的是异常类名 ,而且可以有多个类名(中间由逗号分隔)//throws 表明本方法有可能发生某个类型的异常public void b() throws Exception{    System.out.println("b方法开始");    Scanner scan = new Scanner(System.in);    int result = scan.nextInt();    if(result >= 0){    //如果程序员主动抛出一个异常---需要使用throw 异常对象;        //throw 书写在方法体        //throw后面跟的是异常对象(只能跟1个对象)        //一旦执行到throw这句代码,一定会发生异常        //如果throw后面的异常对象是编译时异常,那么该方法声明后面必须加throws        //如果throw后面的异常对象时运行时异常,那么该方法声明后面可以不加throws        throw new Exception();    }    System.out.println("b方法结束");}public void bb(){    try {        this.b();    } catch (Exception e) {        // TODO Auto-generated catch block        e.printStackTrace();    }}

}

0 0
原创粉丝点击