异常概念理解
程序执行过程中出现的不正常情况,虚拟机会将异常信息打印到控制台上,为了增强程序的健壮性
异常的存在形式
异常发生的时间
异常的分类
处理异常的手段
注意
public class ExceptionTest01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
NumberFormatException nfe = new NumberFormatException("数字格式异常对象");
System.out.println(nfe);
// 调用doSome()方法
// 如果没有在编译的时候处理,编译会报错
//doSome();
try {
doSome();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
/*
* 该方法使用了throws ClassNotFoundException
* 表示
* 1、该方法在执行的时候可能会抛出ClassNotFoundException异常
* 2、ClassNotFoundException的父类是Exception,属于编译时异常,则在调用的时候需要手动处理
* */
public static void doSome() throws ClassNotFoundException{
System.out.println("HelloWorld");
}
}
异常对象常用的方法
public class ExceptionTest03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
NullPointerException e = new NullPointerException("空指针异常");
// 获取异常的简单信息
String msg = e.getMessage();
System.out.println(msg);
// 打印异常堆栈信息,是采用异步线程的方式打印的
e.printStackTrace();
System.out.println("HelloWorld");
}
}
java.lang.NullPointerException: 空指针异常
空指针异常
at java_SE/com.javase.exception.ExceptionTest03.main(ExceptionTest03.java:9)
HelloWorld
finaly语句
自定义异常
public class MyException extends Exception {
public MyException() {
}
public MyException(String s) {
super(s);
}
}
public class MyExceptionTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyException e = new MyException("用户名不能为空");
e.printStackTrace();
String msg = e.getMessage();
System.out.println(msg);
}
}