Throwable
----异常最大类
1、异常Exception
(可以修改)---可以解决
a.运行时异常
b.非运行时异常
2、错误Error
(不可以修改)---无法解决
对于方法中返回值的情况,同样会返回finally中的返回值
try{ //可能发生异常的代码 }catch(Exception e){ //处理方式(将异常打印出来) e.printStackTrace(); }finally{ //无论有没有发生异常都会执行到的代码 }
谁运行有异常的方法,则将异常抛给谁-----虚拟机
方法上抛出
public class Test { public static void main(String[] args){ int a=new Scanner(System.in).nextInt(); if (a==0){ throw new ArrayIndexOutOfBoundsException(); }else{ try { throw new MyException("a不等于0"); } catch (MyException e) { e.printStackTrace(); } } } } class MyException extends Exception{ private String message; public MyException(String message){ this.message=message; } @Override public void printStackTrace() { System.out.println("my Exception 异常轨迹信息: "+message); } }