try catch机制
public static void main(String[] args) { while(true){ int num1 = 100; Scanner scanner = new Scanner(System.in); int num2 = scanner.nextInt(); try{ int res = num1 / num2; System.out.println(res); }catch (Exception e){ System.out.println("除数不能为0!"); } } }二、Java的继承体系结构
Throwable类时Java语言中所有错误或异常的超类
(1)Throwable类是所有错误和Java中异常类,只有当对象是此类(或子类之一)的实例的时候,才能通过java虚拟机或者java throw语句抛出;
(2)Exception和Error都是继承了Throwable类,它是异常处理机制的基本组成类型;
(3)Exception和Error体现了java平台设计者对不同异常情况的分类,Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理;
(4)Error是指在正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序处于非正常的,不可恢复的状态,既然是非正常情况,所以不便于耶不需要捕获,常见的比如OutMemoryError。
(1)Error是Throwable的子类,用于知识合理的应用程序不应该三视图捕捉的严重问题;
(2)Java程序通常不捕获错误,错误一般发生在严重故障时,他们在java程序处理的范畴之外;
异常:Java语言中,将程序执行中发生的不正常情况称之为异常,就是程序执行的时候出现了意想不到的情况。
Exception异常主要分为两类:
一类是 受查异常 (检查性异常),checkException,可检查异常在源代码里面必须显式的进行捕获处理,这是编译期检查的而重要组成部分。Check Exception的假设是我们捕获了异常,然后回复程序,但是,其实我们大多数情况下,根本就不可能恢复。
另一类是运行时异常(非受查异常),RuntimeException,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求。
一个异常被抛出之后会继续被调用这个方法的方法捕获抛出,也就是异常扩散。
方法在栈空间中被调用,多个方法户响调用形成了调用链条,会生成一个StackTrace,也叫做栈轨迹,或堆栈信息,或调用链。JVM抛出异常的时候,会打印这个堆栈信息。在捕获异常信息之后应该主动地打印信息,这样我们才能尽量找到问题并解决问题。
有时候那我们甚至需要捕获一个一场之后需要抛出另外一个异常,并且希望把异常原始地信息保留下来,这样地多个异常形成地链条叫做异常链。 1、JDK1.4之前,我们需要自己编写代码来保存原始异常信息。 2、现在所有地Throwable地子类构造器中都可以接受一个cause对象作为参数,这个cause就是异常原因,代表原始异常,即使在当前位置创建并抛出行的异常,也可以通过这个cause追踪到异常最初发生的位置。 3、Throwable类及其所有的子类都提供了带cause参数的构造器,其他的异常类只有哦通过initCause()来设置cause了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)