10.Java异常机制
2021/11/2 22:09:40
本文主要是介绍10.Java异常机制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1、什么是异常(Exception)
- 异常是指程序运行中出现得不期而至得各种状况。如:文件找不到、网络连接失败、非法参数等待
2、异常体系结构
一、要理解java异常处理是如何工作得,需要掌握以下三种情况
-
检查性异常:最具代表性得检查性异常是用户错误或者问题引起得异常,这是程序员无法预见得。例如要打开一个不存在得文件时,一个异常就发生了,这些异常在编译时不能被简单得忽略。
-
运行时异常:运行时异常是可能被程序员避免得异常。于检查性异常相反,运行时异常可以在编译时被忽略
-
错误(ERROR):错误不是异常,而是脱离程序员控制得问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,他们在编译也检查不到。
二、java把异常当作对象处理,并定义一个基类java.lang.Throwable,其结构如下:
- Error类对象是由java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。
- Exception类对象一般由程序逻辑错误引起,程序应该从逻辑角度尽可能避免。
3、java异常处理机制
一、抛出异常
当异常发生时,java虚拟机会自动抛出异常并给与提示,也可以通过throw、throws主动抛出异常
- throw:
- 表示方法内抛出某种异常
- 如果异常对象是非RuntimeException,则需要在方法体上加上throws抛出该异常,或者在方法体内用try、catch处理该异常,否则编译报错
- 执行到throw语句则后面的语句不再执行
- throws:
- 在方法体上使用,表示这个方法可能抛出某种异常
- 需要由方法的调用着进行异常处理
package com.exception; import java.io.IOException; public class Test1 { public static void main(String[] args) { try { testThrows(1,0); }catch (ArithmeticException e){ System.out.println("Throws抛出异常"); } try { testThrow(1,0); }catch (ArithmeticException e){ System.out.println("Throw关键字抛出运行时异常,不需要在方法体上声明"); } String filePath = null; try{ testThrow(filePath); }catch (IOException e){ System.out.println("Throw关键字抛出非运行时异常,需要在方法体加throws异常抛出声明"); } } //测试Throws关键字 public static void testThrows(int a,int b) throws ArithmeticException{ System.out.println(a/b); } //测试Throw关键字抛出运行时异常 public static void testThrow(int a,int b) { if (b == 0){ throw new ArithmeticException();//运行时异常不需要在方法体上声明 } } //测试Throw关键字抛出非运行时异常,需要在方法体加throws异常抛出声明 public static void testThrow(String filePath) throws IOException { if (filePath == null){ throw new IOException();//运行时异常不需要在方法体上声明 } } }
二、捕获异常
可以通过try、catch、finally关键字对异常进行捕获、处理。
package com.exception; public class Test { public static void main(String[] args) { int a = 1; int b = 0; //捕获多个异常:异常的类型必须是从小到大捕获 try {//try监控区域 System.out.println(a/b); }catch (Error e){//catch后跟想要捕获地异常类型 System.out.println("程序出现错误"); }catch (Exception e){ System.out.println("程序出现异常,除数不能为零"); }catch (Throwable t){ System.out.println("程序出现异常或者错误"); } finally {//不管有不有异常发生都会被执行 System.out.println("finally"); } }
这篇关于10.Java异常机制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南