Java 异常处理

  • Post author:
  • Post category:java




java异常

异常:Exception(例外):程序在运行过程中出现的不正常现象

不正常:

(1)编译阶段,程序报错-修改代码

(2)运行阶段,程序报错-处理异常-比较严重

练习:输入一个整数,打印这个数的平方

如何解决此问题?今天讲解的内容:异常处理



why(为什么要处理)

异常如果不进行处理,危害在:(1)程序异常停止;(2)得不到友好的提示



how(如何去处理)

如何进行异常处理?关键词

try:将可能出现异常的代码放在try中

catch:将异常出现后,需要处理的代码放在catch中

try中的代码是业务代码,如果没有异常,不执行catch

如果有异常,略过try中剩余代码,转而执行catch

执行完毕后,程序继续向下执行,不会终止。



几个额外问题

  1. Java中有哪些种类的异常呢?

    NumberFormatException:数值格式异常

    ArithmeticException:数学计算异常(比如除数为0)

    ArrayIndexOutOfBoundsException:数组越界异常

    NullPointerException:对象未分配内存异常
  2. try-catch配对问题


    一个try后面至少跟一个catch,可以跟多个catch,用来处理不同的异常。
  3. 异常处理有时候可以解决一些有趣的问题

    输入一个整数,打印这个数的平方;如果输入格式不对,反复出现输入框,直到输入格式正确,打印平方
  4. 和try、catch一起使用的还有一个关键词:finally

    finally代码块原理:finally加在catch后面,表示不管是否出现异常,都需要执行的代码

    try-catch之后,可以有finally,也可以没有finally

    打开文件

    处理文件

    关闭文件

    finally块,确保了程序的安全性。


疑问

:finally块实际上是可有可无?不是!只要有try,不管try里面发生了循环跳出、函数返回等,配套的finally一定会执行!从底层确保了需要要执行的代码一定会执行(安全性)

异常处理三大词: try – catch -finally

1 1…N 0,1

*** ** *



关键词

异常处理另外两个关键词:throws、throw:抛出



原理

异常的原理:

try{ … } catch(Exception e){ … }

原理:try里面的代码,如果出现异常,系统底层将其包装成一个对象,抛出。被catch块捕获,赋值给参数e,并执行catch块



throw和throws的区别

1、throw:在函数中抛出一个实际的异常对象

2、throws:在函数定义上标记该函数可能抛出异常

3、标记了throws的函数,在调用时,原则上必须用try包围,并编写catch代码处理可能出现的异常(还有非原则情况),这叫做就地捕获;或者 将异常再次向前抛出

4、throws和throw一般用于自定义异常信息并要求从函数中返回的情况。为了不影响函数的正常返回,将自定义异常的信息用异常包装,throw抛出,函数用throws标记。

————————————————————

异常处理三大词: try – catch -finally

1 1…N 0,1

*** ** *

异常抛出两大词: throw throws

** *

异常处理使用场合更多。



版权声明:本文为m0_53244895原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。