定义
在程序的运行过程中出现的一些不被期望的效果
在java中有一个定义好的规则Throwable
它有两个子类
Error错误
通常是一些物理的,jvm虚拟机本身出现的问题,程序指令是处理不了的
Exception异常
通常是给定的程序不=指令产生了一些不符合规范的事情
1:运行时异常(非检查异常)
Erro和RuntimeException都是运行时异常,javac编译的时候不会提示和发现,我们可以手动的try throws
2:编译时异常(检查异常)
会阻止程序的运行
1:InterrupException
Thread.sleep(5000)
处理异常的手段
处理异常不是指异常消失而是指后续的代码不会因为异常而停止
package my;
public class myThrow {
public static void main(String[] args) {
try {
String a=null;
System.out.println(a.length());//java.lang.NullPointerException
} catch (Exception e) {
e.printStackTrace();
}
finally {
}
}
}
1:try 不能单独出现
2:catch 可以多次出现
3:finally 里的内容必须执行
throws
1:方法能抛出异常,属性不能
2:正常方法和构造方法
package my;
public class myThrow {
public static void tc() throws NullPointerException
{
String a=null;
a.length();//NullPointerException
}
public static void main(String[] args) {
try {
myThrow.tc();
} catch (NullPointerException e) {
e.printStackTrace();
System.out.println("捕获了异常");
}
finally {
}
}
}
自定义异常
public static void tc()
{
if(3>2)
{
throw new TE();
}
}
package my;
public class TE extends RuntimeException {
}