标签:需要 == stat 角度 超出 快捷 图片 nal try
exception(异常)
异常的体系框架:
ArithmeticException是出现异常的运算条件时,抛出此异常。例如,一个整数“除以零”时,抛出此类的一个实例。
Error与exception的区别
error:(致命灾难性的错误,程序无法控制,jvm会自动结束进程)
error类对象是虚拟机生成并抛出的(virtulMachineError),大多与代码编写者的操作无关
exception:(程序员可以处理)
1.运行异常:程序逻辑错误,跟个人有很大关系
2.IOException:输入、输出异常
运行时异常与非运行时异常区别:
运行时异常:
都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,
这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。
这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。
非运行时异常 (编译异常):
是RuntimeException以外的异常,类型上都属于Exception类及其子类。
从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
异常处理机制:
1.捕获异常
2..抛出异常(处理异常)
try {}监控区域
catch{} 抛出异常
catch可以写多个,但捕获异常的类型大小必须是从小到大,否则会报错。
finally{}处理善后工作, try{}内错误与否,都会执行 ,可以不需要
int a = 10;
int b = 0;
try {//监控区域,用于捕获异常
System.out.println(a/b);
}catch (Exception e){//抛出异常 catch(想要捕获的异常类型)
System.out.println("运算错误");
e.printStackTrace();//打印错误追踪(打印错误信息)
}finally {//无论监控捕获区域是否出现错误,都会执行 ,可以不需要,用于处理善后工作,如IO,资源,关闭。
System.out.println("finally");
}
快捷键包围代码块:先全选需要包围的代码块,再Ctrl+alt+t
1.throw 主动抛出一个异常对象(没有s) 一般在方法里面使用
2.throws 假设这方法中,处理不了这个异常,在方法上抛出异常
public class A {
public static void main(String[] args) {
A a = new A();
a.test(10,0);
}
public void test(int a,int b)throws ArithmeticException{
if(b == 0){
throw new ArithmeticException();
}
System.out.println(a/b);//程序会停下来,不会执行
System.out.println("dif");//程序会停下来,不会执行
}
}
1.自定义异常类 ,要继承Exception
public class MyException extends Exception {
private int num;
public MyException(int num) {
this.num = num;
}
@Override
public String toString() {
return "MyException{" + "num=" + num + '}'+"超出范围!";
}
}
public class Test {
public void teat1(int a) throws MyException {
if(a>10){
throw new MyException(a);
}
}
public static void main(String[] args) {
Test test = new Test();
try {
test.teat1(11);
} catch (MyException e) {
e.printStackTrace();
}
}
}
标签:需要 == stat 角度 超出 快捷 图片 nal try
原文地址:https://www.cnblogs.com/zgmzbhqa/p/12770981.html