Exception

可以抛出的基本类型,可以通过程序来控制错误;

1、抛出当前方法异常:
throw new NullPointerException();

//方法内自行处理异常
public static void main(String[] args){
        //Object[] obj = new Object[1000000000];//ERROR
        try {
            throw new Exception("自己抛出的异常");
            //Object obj = null;
            //obj.toString();//当空指针异常在这里出现,程序中断,后面不会被执行
        } catch (NullPointException e) {//空指针异常 
            e.printStackTrace();
        }//异常之后不再执行
        catch (Exception e) {//各种类异常,捕获程序运行时抛出的异常
            e.printStackTrace();//打印栈轨迹
        }

2、throws :当前方法不去处理所产生的异常,将异常抛出去交给方法的调用者,如果此时是main方法,那么异常将抛出给虚拟机,直接打印到控制台;

public static void main(String[] args) throws Exception {

    }

ERROR

系统性严重错误,程序无法自行调整,如内存溢出