JavaSE学习总结(十五)Java异常处理/Throwable/Error/Exception/异常处理/try...catch/throw和throws的区别/finally/自定义异常

Java 异常处理

一、异常的概述和分类

(一)什么是异常?

异常就是Java程序在运行过程中出现的错误。

(二)Throwable、Error、Exception

  • Throwable: Java中所有错误(Error)和异常(Exception)的父类
  • Error:一般是指与虚拟机相关的问题,如系统崩溃,内存空间不足等。它表示不希望被程序捕获或者是程序无法处理的错误,我们不予处理,因为这类一般是很严重的问题,我们处理不了。
  • Exception:表示程序可以处理的异常,可以捕获且可能恢复。分为编译时异常运行时异常
    1. 编译时异常: 非RuntimeException及其子类(必须显式处理,否则程序就会发生错误,无法运行)
    2. 运行时异常: RuntimeException及其子类(可以显式处理,也可以不处理,不处理则是虚拟机默认处理)
    在这里插入图片描述

为了更好地理解Error、编译时异常和运行时异常,可以举个例子:
张三骑自行车去旅游
①骑车途中掉链子,但张三自己可以修好(运行时异常)
②骑车途中轮子爆胎了,张三自己解决不了(严重问题Error)
③出发前发现自行车刹闸松了(编译时异常)

(三)虚拟机JVM是如何默认处理异常的

当遇到运行时异常时,如不作处理则交给JVM处理,JVM有一个默认的异常处理机制,其将该异常进行处理,并将该异常的名称、异常的信息和异常出现的位置打印在了控制台上,同时将程序停止运行(后面的代码不执行)
  
案例演示
(1 除 0)

public class MyTest5 {
   
    public static void main(String[] args) {
   
        int a=1;
        int b=0;
        System.out.println(a/b);
        System.out.println("这句话被执行了");
    }
}

运行:
在这里插入图片描述
发生了运行时异常并且我们没有处理,默认交给了JVM处理,从运行结果来看,发生异常后,后面的代码也没有执行。
显然,这样不作处理的方式会导致异常后的代码无法执行,于是我们自己处理,下面就介绍处理异常的方法。

二、异常处理

(一)try…catch的方式处理异常

try {
   
可能出现问题的代码 ;
}catch(异常名1 变量名1){
   
对异常的处理方式 ;
}catch (异常名2 变量名2){
   
对异常的处理方式 ;
}....

可以用快捷键ctrl+alt+T生成

注意事项
1. try中的代码越少越好,放有可能出现问题的代码。try里面的代码一旦遇到相应的异常,就会执行catch里面的代码。catch里面的异常类名,就是你要对何种异常进行捕获
2. catch中要做处理,不能做空处理(不能将异常信息隐藏),哪怕是一条输出语句也可以,比如e.printStackTrace();(打印异常的堆栈信息)。
3. 如果捕获多个异常,平级关系的异常谁前谁后无所谓,如果出现了子父关系,父类异常捕获必须在后面,否则,子类异常的语句不被执行。
4. 能明确异常种类的尽量明确,不要直接用大的异常类(Exception)来处理。(如果实在无法明确,最后再来一段catch(Exception e){......})

public class MyTest4 {
   
    public static void main(String[] args) {
   
        int a = 1;
        int b = 0;
        int[] arr = {
   2, 4};
        arr = null;

      try {
   
            System.out.println(a / b);
            System.out.println(arr.length);
        } catch (ArithmeticException e) {
   
            System.out.println("除数为0了");
        } catch (NullPointerException e) {
   
            System.out.println("空指针异常");
        } catch (Exception e) {
   
            System.out.println("其他异常");
        }
        System.out.println("下面的代码执行");
        System.out.println("下面的代码执行");
        System.out.println("下面的代码执行"<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这是Oracle官网上Java SE的下载页面,Java SE是Java平台的标准版本,它提供了Java程序开发和运行所需的核心功能和库。在该页面中,您可以下载Java SE的不同版本,包括JDK(Java Development Kit)、JRE(Java Runtime Environment)和服务器JRE。您可以选择根据您的需求和操作系统下载适当的版本。另外,您也可以在该页面上找到Java SE的文档和相关信息。 ### 回答2: https://www.oracle.com/java/technologies/javase-downloads.html 是Oracle官方Java SE下载页面。这个页面提供了Java SE的最新版本下载,以及Java SE的旧版本下载。Java SE是一种全面的计算机技术,用于开发和部署强大、可靠、安全的Java应用程序。Java SE是Java平台的核心,是开发Java Web、Java EE、Java ME等各种应用程序所必须的绕不开的基础。 在这个页面上,用户可以下载适合自己平台的Java SE版本,包括Windows、Linux和Mac OS X。用户可以选择不同的版本,比如JDK和JRE,以及特定版本号。在下载之前,用户需要同意Oracle的授权协议才能下载。协议列明了用户可以使用Java SE做什么,不可以做什么,以及特定条款和条件。用户需要认真阅读,理解,并且同意了协议才能下载。 Java SE具有很多优点,比如跨平台移植性、良好的安全性、易于学习和使用等特点。因此Java SE深受广大程序员和企业的欢迎。Java SE更新比较频繁,同时也增加了很多新的特性和优化。因此,在Java开发中要时刻关注Java SE的更新和改进,及时进行版本升级,以便获得更好的使用体验和应用性能。 ### 回答3: Oracle Java SE(Standard Edition)是目前全球最大的应用软件平台之一,它提供了广泛的基于Java语言的开发和部署工具,可在各种计算机、服务器、移动设备、网络和云中使用。Oracle Java SE是Java编程语言的官方发布,目前最新版本为Java 17。 在Oracle官方网站上,可下载Oracle Java SE的最新版本,以及其他旧版本供特定用途使用。下载包括Java开发工具包(JDK)和Java运行时环境(JRE),其中JDK含有Java编译器、调试器、JavaDoc等工具,而JRE则提供了Java应用程序的运行环境。 通过使用Oracle Java SE,开发者可编写安全、可靠和可扩展的Java应用程序,支持多个操作系统平台,包括Windows、Linux和macOS。开发Java应用程序的一个主要优点是其可移植性。Java程序可在不同平台上执行,而不需要进行修改。开发人员还可以使用大量的Java类库和API,以提高生产效率和降低应用程序的开发成本。 Oracle Java SE支持各种开发领域,包括企业级应用程序、移动应用程序、桌面应用程序、嵌入式设备和游戏开发。此外,Java也用于其他领域,如大数据处理、人工智能和机器学习。 总的来说,Oracle Java SE具有出色的跨平台性能和多功能性。它已成为开发Java应用程序的必备开发工具之一。对于Java开发者来说,定期下载和使用Oracle Java SE的最新版本是十分重要的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值