栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA:异常(待更)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA:异常(待更)

异常

一、

1、异常旗下两大分支:编译时异常和运行时异常

Exception->RunTimeException(运行时异常,又叫未受检异常、非受控异常),编写阶段可不处理,编译器没意见。

Exception->ExceptionSubClass(编译时异常,又叫受检异常、受控异常),是Exception的直接子类,编写程序时必须处理,不然报错。发生概率极高。

切记:所有异常都是发生在运行阶段的。

2、处理异常

第一种:在方法声明的位置上,使用throws关键字,抛给上一级。

eg:我是一个小职员,失误了,导致公司损失1000块,然后告诉了领导,这就是异常的上抛

第二种:使用try..catch语句进行异常捕捉。

eg:我还是那个小职员,但是我这次不告诉领导了,直接用我自己的钱补上,这就是异常的捕捉

注意:java中异常发生之后如果一直上抛,最终抛给了main方法,main方法继续向上抛,抛给了调用者JVM,JVM知道这个异常发生,只有一个结果,终止java程序的执行。

异常处理机制的作用就是增强程序的健壮性,争取做到发生异常也不影响程序的执行

3、方法声明位置上使用throws

Eg:

public static void doSome() throws ClassNotFoundException(){

Sout("dosome!!!");

}

这个时候要想在主方法直接调用doSome的话,那编译器就会报错(错误信息:未处理的异常,Unhandled exception)。

4、try..catch

语法:

try{

// 尝试,把可能出现问题的代码块放到这里

}catch(异常类 + 变量名){

//catch是捕捉到异常之后执行的分支,如输出一些错误信息

// 变量里面存的是异常对象的内存地址

}

// try..catch抓住异常之后,这里的代码会继续执行。

捕捉等于把异常拦下来,异常真正的解决了,调用者不知道发生过异常。

5、throws

throws相当于把异常上抛,推卸责任。但是要注意,抛出异常之后,当前方法就没有责任了,把责任抛给上级了。且

①往上抛的过程中,只能抛当前异常类及父异常类,级别低了不行。

②可以同时抛出多个异常

③一般不建议在main方法上使用throws

6、深入try…catch…

try{

FileInputStream fis =new FileInputStream("XXXXX");

//这里new了一个异常对象,try里发现异常,于是转交catch捕捉

}catch(Exception e){  // 异常类可以是当前异常类,也可以是其父类。

Sout("文件不存在 !");

}

①catch可以写多个。建议catch的时候,精确的一个一个处理,这样有利于程序的调试,也可以直接来一个catch(Exception e) ,省事。

②多个catch遵循"从上到下,从小到大"的原则

7、jdk8新特性

允许这么写catch(FileNotFoundException | ArithmeticException | NullPointerException),即以“或”的方式来写异常,方便处理

8、异常和捕捉怎么选择?

 如果希望调用者来处理,throws上报;其他情况,直接捕捉。只有这一个原则

二、getMessage() 和 printStacktrace()方法

1、getMessage()方法

作用:获取异常的简单的描述信息,其实就是构造方法上String参数(传进去的)

String msg = exception.getMessage();

2、printStackTree()方法

作用:打印异常追踪的堆栈信息

Exception.printStackTrace();

3、举个例子

Eg:

NullPointerException e = new NullPointerException("空指针异常abc");

String msg = e.getMessage();

Sout(msg); // 输出“空指针异常abc”

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/888258.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号