//异常//

异常:程序在“编译”或“运行”的过程中可能出现的问题

1.运行时异常

运行时异常:直接继承RuntimeException或者其子类,编译阶段不会报错,运行阶段可能会报错

例子:

//1.数组索引异常ArrayIndexOutBoundException
//2.空指针异常:NullPointerException 直接输出没有问题,但调用空指针异常的功能就会保错
//3.类型转换异常 ClassCastException
//4.数学操作异常 ArithmeticException
//5.数字转换异常 NumberFormatException
package Exception;

public class d1 {
    public static void main(String[] args) {
        System.out.println("程序开始===========");
        //1.数组索引异常ArrayIndexOutBoundException
        int[] arr={1,2,3};
        System.out.println(arr[2]);
        //System.out.println(arr[3]);

        //2.空指针异常:NullPointerException 直接输出没有问题,但调用空指针异常的功能就会保错
        String name=null;
        System.out.println(name);//null
        //System.out.println(name.length());

        //3.类型转换异常 ClassCastException
        Object o=23;
       // String s=(String) o;运行出错,程序终止

        //4.数学操作异常 ArithmeticException
        //int c=10/0;

        //5.数字转换异常 NumberFormatException
        //String number=23;
        String number="23asc";
        Integer it=Integer.valueOf(number);
        System.out.println(it +1);

        System.out.println("结束============");

    }
}

 

2.编译时异常

编译时异常:不是RuntimeException或者其子类的异常

package Exception;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class d2 {
    public static void main(String[] args) throws ParseException {
        String date="2015-01-02 10:23:21";
        //创建一个简单日期格式化类
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //解析字符串时间成为日期对象
        Date d=sdf.parse(date);
        System.out.println(d);

    }
}

对于那个parse解析,在编译时会提醒你可能出错,这时就可以throws ParseException说明我没错

3.异常处理机制

异常处理方式一:throws

用这种方法 ,可以将内部出现的异常抛出去给本方法的调用者处理,但这种方式并不好,发生异常的方法自己不处理异常,如果异常最终抛出去给虚拟机会造成程序死亡

规范格式

方法 throws Exception{

}

================================================

异常处理方式二:try...catch

发现异常独立处理异常,程序可以继续往下走

规范格式:

try{

//可能出现异常的代码

}catch(Exception e){

e.printStackTrace();

}

package Exception;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class d3 {
    public static void main(String[] args) {
        System.out.println("程序开始==========");
        parseTime("2020-11-11 10:10:10");
        System.out.println("程序结束==========");
    }
    public  static void parseTime(String date){

        try {
            SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM-dd HH:mm:ss");
            Date  d = sdf.parse(date);
        } catch (ParseException e) {
            e.printStackTrace();//打印异常栈信息
        }


    }
}

结果:

//异常//_第1张图片

异常处理方式三:前两种结合

其实无论哪种,只要代码能编译通过,都可以

 

你可能感兴趣的:(java,前端,服务器)