package com.great.demo;
import java.util.InputMismatchException;
import java.util.Scanner;
public class Demo {
/*
* 生活中的异常:意外情况
* 1.并不是100%发生
* 2.如果发生,可以避免
*
* 在Java代码中,异常是可以避免的,通过try catch等方法
* 特点:
* 1.当出现异常时,会报出错误类型,以及哪一行出现错误
* 2.当出现异常时,程序中断,之后的逻辑代码不再运行
* 3.异常并不是100%发生
* 4.如果发生,应该去避免
*
* 注意:错误是由100%的错误机率导致。也就是说,如果出现100%概率的错误,那么就不能采用异常的处理方式来处理
*
* 使用:
* try{可能出现异常的代码}catch(异常类 变量名){处理手段代码}
* try{可能出现异常的代码}catch(异常类 变量名){处理手段代码}catch(异常类 变量名){处理手段代码}catch(异常类 变量名){处理手段代码}...
* try{可能出现异常的代码}catch(异常类 变量名){处理手段代码}finally{逻辑代码}
*
*
* 注意:
* 1.所有的异常类都继承或间接继承于Exception这个类,也就是说异常是一个对象
* 2.如果catch中异常类不匹配出现异常的对象,那么还是会中断程序的
* 3.catch可以有多个,但是如果匹配到对应的异常对象,之后的catch就不再执行了
* 4.如果在最前面书写了Exception这个类作为捕获的异常,那么其他的异常类就不用写了
* 5.finally不论逻辑代码是否出现异常,或者是否捕获到异常,只要书写了finally那么内部的逻辑代码,绝对会执行(就算return也没效果)
*
*
*
* throw:
* 格式:
* throw new 异常类();
* 特点:
* 1.抛出异常 --- 代码执行到该位置,就会中断程序,并且返回异常类错误类型,和错误位置
* 2.用来创建异常
*
* throws:
* 声明异常 --- 告知使用者,这里可能会出现异常情况,是否需要捕获
* 格式:
* 在方法括弧之后 添加 throws 异常类,异常类...
*
* 特点:
* 1.用来告知使用者需要预防异常的发生
* 2.可以有两种方式来预防,
* 2.1.通过try catch方式来捕获异常
* 2.2.通过继续throws来声明异常,(采用此方法,如果出现异常,就会中断程序并且返回异常类错误类型,和错误位置)
*
*
*/
public static void main(String[] args) {
/* try{
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
System.out.println("input:"+i);
}catch(NullPointerException ex ){
System.out.println("刘彬hehe1");
}catch (InputMismatchException e) {
// TODO: handle exception
System.out.println("刘彬hehe2");
}catch (Exception e ) {
// TODO: handle exception
System.out.println("刘彬hehe3");
}*/
/* try{
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
System.out.println("input:"+i);
return;
}catch(NullPointerException ex ){
System.out.println("刘彬hehe1");
}finally{
System.out.println("Finally"); //finally举例
}*/
//throw 和 throws 举例
ExceptionDemo demo = new ExceptionDemo();
try {
demo.test(1);
} catch (InputMismatchException e) {
// TODO Auto-generated catch block
e.printStackTrace(); //打印错误信息
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
System.out.println("Hello");
}
}