Java基础学习11_异常与异常处理
来源:互联网 发布:360网络防火墙 编辑:程序博客网 时间:2024/06/05 04:28
一. 异常简介
异常(Exception)指的是所有可能造成计算机无法正常处理的情况。
异常处理有以下特点:
1、不需要打乱程序的结构,如果没有错误,程序运行不受影响
2、不依靠方法的返回值来报告错误是否产生
3、采用集中的方式处理错误,能够根据错误种类的不同来进行对应的错误处理操作
常见异常:
1、算术异常(ArithmeticException):1/0
2、空指针异常(NullPointerException):没有给对象开辟内存空间却使用该对象时抛出
String str=null; System.out.println(str.length());
3、文件未找到异常(FileNotFoundException):程序试图打开一个不存在的文件进行读写时抛出
4、数组下标越界异常(ArrayIndexOutOfBoundsException):int[2]={10,20,30}
5、内存不足错误(OutOfMemoryException):当可用内存不足让java虚拟机分配给一个对象时抛出
6、类型转换异常(ClassCastException):
异常处理的目的:使程序员得到反馈;使程序以一种适当的方式继续运行或者停止运行;可以保存当前用户的操作或者进行数据回滚;同时把占用的资源释放掉。
异常可分为两大类:java.lang.Exception类与java.lang.Error类。这两个类都是Trowable的子类。
二. 使用try...catch...finally...实现异常处理
语法:
<span style="font-size:18px;">try{//一些会抛出异常的方法}catch(InputMismatchException e)//异常类 对象名称{//处理该异常的代码块1}catch(ArithmeticException e){<span style="font-family: Arial, Helvetica, sans-serif;">//处理该异常的代码块2 }</span></span>
如果try程序块有异常发生,程序的运行便中断,并抛出“异常类所产生的对象”。抛出的对象如果属于catch()括号内欲捕捉的异常类,catch则会捕捉此异常,然后进入catch的块里继续运行(其中,要注意catch的顺序问题,要先子类后父类,一般Exception类是放在最后的)。无论try程序块是否捕捉到异常,或者捕捉到的异常是否与catch()括号里的异常相同,最终一定会运行finally块中的程序代码。
public class TryCatchTest {public static void main(String[] args) {// TODO 自动生成的方法存根 TryCatchTest tct=new TryCatchTest(); int result=tct.test(); System.out.println("test执行完毕");} public int test(){int divider=10;int result=100;try{while(divider>-1){divider--;result=result+100/divider;}return result;}catch(Exception e){
e.printStackTrace();System.out.println("循环出现异常了"); return result=999;<span style="white-space:pre"></span>}finally{<span style="white-space:pre"></span>System.out.println("Finally");<span style="white-space:pre"></span><span style="white-space:pre"></span> System.out.println(result);<span style="white-space:pre"></span>}}}输出:
循环出现异常了
Finally
999
test执行完毕
Finally
999
test执行完毕
java.lang.ArithmeticException: / by zero
at com.imooc.test.TryCatchTest.test(TryCatchTest.java:17)
at com.imooc.test.TryCatchTest.main(TryCatchTest.java:8)
上段代码中,printStackTrace()方法给出了更为详细的异常信息,不仅包括异常的类型,还包括异常发生在哪个所属包、所属类、所属方法以及发生异常的行数。at com.imooc.test.TryCatchTest.test(TryCatchTest.java:17)
at com.imooc.test.TryCatchTest.main(TryCatchTest.java:8)
同时,注意返回的顺序。
三. java中的异常抛出以及自定义异常
java的异常抛出需要使用throw和throws关键字.
throw: 将产生的异常抛出(动作)
throws:声明将要抛出何种类型的异常(声明)
语法:
public void 方法名(参数列表)throws 异常列表{
//调用会抛出异常的方法或者throw new Exception();
}
自定义异常:
class 自定义异常类 extends 异常类型{
}
public class Initial {public static void main(String[] args) { try{ throw new MyException("自定义异常"); } catch(MyException e){ System.out.println(e); }}}<strong>class MyException extends Exception</strong>{//为自定义异常类添加一个带有字符串参数的构造器(也可以根据情况添加无参构造器)
public MyException(String msg){super (msg);}}
四. java中的异常链
...
五. 总结
0 0
- Java基础学习11_异常与异常处理
- Java学习之异常与异常处理
- [java]_[异常处理]
- Java基础_异常
- Java基础_异常
- Java异常分类与处理 -- JAVA 基础
- java异常与异常处理
- Java异常与异常处理
- Java 异常与异常处理
- Java异常与异常处理
- 黑马程序员------Java基础学习------异常处理
- Java基础学习——异常处理
- java基础学习(三)--异常处理
- java基础 ---异常处理
- Java基础:异常处理
- Java基础 异常处理
- Java基础-异常处理
- Java基础:异常处理
- The Swift Programming Language学习笔记(六)——控制流
- stm32之GPIO配置及库函数学习笔记——以流水灯为例
- ios记事本app
- Struts2的标签库(一)之控制标签
- Android studio快捷键更改为eclipse详情
- Java基础学习11_异常与异常处理
- SpringMail使用过程中的报错
- 大型网站技术架构读书笔记03—大型网站架构核心要素
- Windows命令行处理视频教程
- 场景中材质球和贴图打印
- [备忘]Sublime Text下NCL语法包安装
- final关键字
- 【校内】快速幂(数论)
- 绝对路径和相对路径