java逻辑错误包括什么_Java的异常Exception----(最简单明了的总结)

1、什么是异常?

程序开发和运行过程中会出现编译错误和运行错误。编译错误容易被发现并排除,而运行错误(逻辑错误和异常)很难预料。因此为了程序的稳定性和可靠性,就需要对程序异常处理和保护。

异常( Exception ):正常程序流程所不能处理或者没有处理的异常情况或异常事件。

2、为什么要使用异常?

传统的程序设计中会像下面的伪代码形式来处理错误:

执行一个任务

if 前一个任务未能正确执行

执行错误处理

执行下一个任务

if 前一个任务未能正确执行

执行错误处理

而这样只会让程序更加复杂!

3、异常的分类

<1>根据异常在编译时是否被检测来分,异常可以分为两类:受检异常(CheckedException)与非受检异常(UncheckedException)。

<2>非受检异常不能在编译时检测到。非受检异常包括运行时异常(RuntimeException)和错误(Error)。

错误指的是致命性错误,常常无法处理。

<3>根据异常的严重性,可以分为可以处理的异常和错误异常。

异常以类的形式封装。程序可以处理的异常对应的类是java.lang.Exception及其子类。

运行时异常对应的类是java.lang.RuntimeException。

错误异常对应的类是java.lang.Error

5、异常的产生

<1>可以由 Java虚拟机在执行程序时自动发现并产生异常。

<2>也可以在程序中显式地生成异常,这种方法称为抛出异常(ThrowExceptions)。抛出异常采用throw语句,格式如下:

throw new ArithmeticException( );

或者:

ArithmeticException e=new ArithmeticException( );

throw e;

6、异常的处理

<1>捕捉异常(try_catch_finally语句)

try{

//可能产生异常的语句;

}catch(Exception1 e1){

//处理语句1;

}catch(Exception2 e2){

//处理语句2;

}finally{

//语句序列;

}

/*

1)catch语句块可以有多个;

2)catch语句块和finally语句块可以同时存在,也可以只有其一;

3)如果发生异常,则会跳转到捕捉对应异常的catch语句块,发生异常语句之后的语句序列不会被执行。

4)不管异常是否发生,finally语句块总是会被执行,除非碰到强制退出程序的System.exit(0)语句;

5)如果try语句块或catch语句块中有return语句,则会执行完finally语句块再执行返回。

*/

一个demo:

public class J_ExceptionCatch

{

public static void main(String args[ ])

{

try

{

System.out.println("try语句块");

throw new Exception( );

}

catch(Exception e)

{

System.err.println("catch语句块");

e.printStackTrace( );

}

finally

{

System.out.println("finally语句块");

} // try-catch-finally结构结束

} // 方法main结束

} // 类J_ExceptionCatch结束

/*运行流程:

1.try语句块捕捉throw的异常

2.跳转到相关的catch语句块

3.最后执行finally语句块的内容

*/

<2>throws抛出异常

public class Test{

public static void main(String[] args) throws IOException{

FileInputStream fis = new FileInputStream("a.txt");

}

}

//上面的main方法throws了IOException,声明但不去处理,所以在运行之后,

//该异常就会交给JVM处理,程序一旦遇到该异常,就会打印该异常的跟踪栈信息

//并结束程序

标签:语句,try,Exception,Java,错误,----,finally,catch,异常

来源: https://www.cnblogs.com/yds1314/p/13927654.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值