我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Java异常处理方法汇总

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Java异常处理方法汇总

前言:

我们在软件开发的过程中,任何语言的开发过程中都离不开异常处理。如果不处理异常,将会导致软件异常中断,崩溃,退出,严重影响用户的使用和体验。如果合理的应用异常处理那将会减少软件出现的错误,可以友好的提示用户,提升用户的体验。

一、异常是什么

异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。如:用户输入非法数据,做除法运算的时候除数为0,语句少写分号,打开的文件不存在,内存溢出,网络中断等。

异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。

二、异常类型

Java中所有的异常类是从 java.lang.Exception 类继承的子类。Exception 类是 Throwable 类的子类。除了Exception类外,Throwable还有一个子类Error 。

检查性异常:用户错误或问题引起的异常,这是程序员无法预见的。除了Error 和 RuntimeException的其它异常。

运行时异常: 运行时异常是可能被程序员避免的异常。Error 和 RuntimeException 以及他们的子类。

错误: 错误不是异常,而是脱离程序员控制的问题。通常的做法是通知用户并中止程序的执行。

三、常见异常

输入输出异常:IOException

算术异常类:ArithmeticExecption

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

文件未找到异常:FileNotFoundException

数组下标越界异常:ArrayIndexOutOfBoundsException

数组负下标异常:NegativeArrayException

文件已结束异常:EOFException

字符串转换为数字异常:NumberFormatException

方法未找到异常:NoSuchMethodException

操作数据库异常:SQLException

四、常用异常方法

getMessage:获取异常的详细信息。

toString:使用getMessage()的结果返回类的串级名字。

printStackTrace:错误输出流。

五、异常处理

对检查异常处理的方式:使用 try…catch…finally 语句块处理;在函数定义中使用 throws 声明。

语法:


try{
    // try 块中放可能发生异常的代码。
}catch(ArithmeticException arithexception){
    // 1.每一个 catch 块用于捕获并处理一个特定的异常,或者异常类型的子类。
    // 2.catch 后面括号中定义了异常类型和异常参数。
    // 3.在 catch 块中可以使用这个块的异常参数来获取异常的相关信息。
    // 4.如果 try 块中发生的异常在所有catch中都没捕获到,则去执行finally,然后到这个函数的外部 caller 中去匹配异常处理器。
    // 5.如果 try 中没有发生异常,则所有的catch块都不执行。
}catch(Exception exception){
    // 捕获异常
}finally{
    // 1.finally 块是可选的。
    // 2.无论异常是否发生,finally 都会执行。
    // 3.一个 try 至少要有一个 catch 块,或者至少要有一个 finally 块。
    // 4.finally 块主要做一些关闭清理工作,如关闭文件,关闭数据库连接等。 
}


示例


package com.exception;
public class test {
 public static void main(String[] args) {
  // TODO 自动生成的方法存根
  compute();
 }

 public static void compute() {
  try {
   double num = 10 / 0;
   System.out.println(num); 
  }catch(ArithmeticException exp){
   System.out.println(exp.getMessage().toString());
  }finally {
   System.out.println("执行finally块");
  }
 }
}

六、关键字 throws/throw

如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明,throws 关键字放在定义方法的尾部。

也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。

throws 语法:

修饰符 返回值类型 方法名(参数) throws 异常类名1, 异常类名2, ... { 代码块 }


package com.exception;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class test {

 public static void main(String[] args) throws FileNotFoundException {
  // TODO 自动生成的方法存根
  readFile();
 }
 
 public static  void readFile() throws FileNotFoundException {
        InputStream file = new FileInputStream("E:/test.txt");
    }
}

throw 语法:

throw new xxxException();

其中 xxxException 必须是 Exception 的派生类。

注意:throw 出的是1个异常对象,所以 new 不能省略。

七、自定义异常

除了JDK定义好的异常类外,我们可以根据自身业务情况自定义异常处理类。

编写自定义异常类注意点:

  • 1.所有异常都必须是 Throwable 的子类。
  • 2.如果写一个检查性异常类,则需要继承 Exception 类。
  • 3.如果写一个运行时异常类,则需要继承 RuntimeException 类。

语法:修饰符 class 类名 extends Exception { 代码块 }


package com.exception;

public class LoginFailException extends RuntimeException {
 public LoginFailException() {
        super();
    }
    public LoginFailException(String message) {
        super(message);
    }
    public void printStackTrace(){ 
     //overwrite  
        super.printStackTrace();  
        System.out.printf("This is a LoginFailException excetpion\n");    
    }  
}
public class test {

 public static void main(String[] args){
  // TODO 自动生成的方法存根
  Boolean isLogin = false;
  if(!isLogin) {
            // 登录失败,抛出异常
   throw new LoginFailException("Login is fail");
  }
 }
}

到此这篇关于Java异常处理方法汇总的文章就介绍到这了,更多相关Java异常处理方法 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Java异常处理方法汇总

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中异常报错处理方法汇总

首先异常是什么,异常白话解释就是不正常,程序里面一般是指程序员输入的格式不规范,或者需求的参数类型不对应,不全等等。 Python中异常是指程序中的例外,违例情况。异常机制是指程序出现错误后,程序的处理方法。当出现错误后,程序的执行流程发生
2022-06-04

Java程序常见异常及处理汇总

Java程序中常见的异常包括:1. NullPointerException(空指针异常):当尝试访问一个空对象的方法或属性时抛出。处理方法:在使用对象时,先判断对象是否为空,避免出现空指针异常。2. ArrayIndexOutOfBoun
2023-08-16

Python异常及处理方法总结

调试Python程序时,经常会报出一些异常,异常的原因一方面可能是写程序时由于疏忽或者考虑不全造成了错误,这时就需要根据异常Traceback到出错点,进行分析改正;另一方面,有些异常是不可避免的,但我们可以对异常进行捕获处理,防止程序终止
2023-01-31

如何进行 java forname 方法的异常处理?(java forname方法的异常处理)

在Java编程中,forName方法是用于动态加载类的重要工具。然而,在使用forName方法时,我们需要注意处理可能出现的异常,以确保程序的稳定性和可靠性。本文将详细介绍javaforname方法的异常处理方
如何进行 java forname 方法的异常处理?(java forname方法的异常处理)
Java2024-12-20

电脑常见故障及处理方法汇总

1. 电脑无法启动或死机:- 检查电源线是否插好并通电。- 检查电源适配器是否正常工作。- 检查电脑内存条是否插好。- 清洁电脑内部的灰尘。- 检查硬盘是否正常连接并运作。2. 无法连接互联网:- 检查是否连接了正确的Wi-Fi网络或以太网
2023-09-07

Java异常类型及处理方法

这篇文章主要介绍“Java异常类型及处理方法”,在日常操作中,相信很多人在Java异常类型及处理方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java异常类型及处理方法”的疑惑有所帮助!接下来,请跟着小编
2023-06-20

【Java练习题汇总】《第一行代码JAVA》异常处理篇,汇总Java练习题——异常的概念及处理标准格式(try、catch、finally、throws、throw)、断言机制 Assertion ~

Java练习题 · 异常处理篇 1️⃣ 异常处理篇 1️⃣ 异常处理篇 一、填空题 Throwable 下的两个子类是______________ 、______________ 。ArthmeticException 类表示_
2023-08-16

在 Java 中如何进行 charat 方法的异常处理?(charat方法在Java中的异常处理)

在Java编程中,charAt()方法是用于获取字符串中指定索引位置的字符。然而,在使用charAt()方法时,我们可能会遇到各种异常情况。本文将详细介绍charAt方法在Java中的异常处理,帮助开发者更好地理解和应对这些异常。一、charAt
在 Java 中如何进行 charat 方法的异常处理?(charat方法在Java中的异常处理)
Java2024-12-16

Java中request对象常用方法汇总

Java中的request对象是HttpServletRequest类型的对象,它封装了HTTP请求的信息。常用的request对象方法有:1. getParameter(String name):获取请求参数的值。如果参数有多个值,则返回
2023-08-17

java异常处理的方法有哪些

Java中常见的异常处理方法有以下几种:1. try-catch语句:使用try块包裹可能抛出异常的代码,然后使用catch块捕获并处理异常。catch块可以根据不同的异常类型进行不同的处理。```javatry {// 可能抛出异常的代码
2023-09-27

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录