热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

异常和成员内部类

异常和内部类前言一、异常1.异常2.避免异常的两种方式3.异常的基本语法1.使用try..catch处理异常2.使用多个catch块3.使用异常的共同父类Exception来捕获异


异常和内部类

  • 前言
  • 一、异常
    • 1.异常
    • 2.避免异常的两种方式
    • 3.异常的基本语法
      • 1.使用try..catch处理异常
      • 2.使用多个catch块
      • 3.使用异常的共同父类Exception来捕获异常
      • 4.关于异常的错误输出
      • 5.关于finally代码块-无论是否产生异常,都会执行的代码块
      • 6.关于异常返回值问题
      • 7.关于异常的调用链
      • 8.JDK新增的自动关闭接口
      • 9.一组关键字throws、throw
  • 二、内部类
    • 1.分类
    • 2.成员内部类
    • 3.内部类使用方法\规则




前言





一、异常

运行时抛出的程序错误
编译出错不属于此处所说的异常


1.异常

在这里插入图片描述
运行时指的是已经编译通过得到class文件,再由JVM执行过程中出现的错误
在这里插入图片描述


2.避免异常的两种方式

在这里插入图片描述


3.异常的基本语法

在这里插入图片描述


1.使用try…catch处理异常

在这里插入图片描述


2.使用多个catch块

在这里插入图片描述


3.使用异常的共同父类Exception来捕获异常

在这里插入图片描述


4.关于异常的错误输出

在这里插入图片描述


5.关于finally代码块-无论是否产生异常,都会执行的代码块

在这里插入图片描述


6.关于异常返回值问题

在这里插入图片描述


7.关于异常的调用链

在这里插入图片描述


8.JDK新增的自动关闭接口

在这里插入图片描述


9.一组关键字throws、throw

在这里插入图片描述
在这里插入图片描述

package Exception;
import book_management.user.User;
import java.util.Scanner;public class Login {public static final String USER = "WANG";public static final String PASSWORD = "123";public static void main(String[] args) {try {login();System.out.println("登陆成功");}catch (UserNameException e){e.printStackTrace();}catch (PasswordException e){e.printStackTrace();}}public static void login() throws UserNameException{Scanner scanner = new Scanner(System.in);System.out.println("请输入用户名");String name = scanner.next();System.out.println("请输入密码");String password = scanner.next();if (!name.equals(USER)) {//抛出用户异常throw new UserNameException("用户名错误");}if (!password.equals(PASSWORD)) {//抛出密码错误异常throw new PasswordException("密码 错误");}}
}//用户名异常
class UserNameException extends Exception{public UserNameException(String msg){super(msg);}
}
//密码异常
class PasswordException extends RuntimeException{public PasswordException(String msg){super(msg);}
}

二、内部类

内部类:就是将类结构的定义套在另一个类的内部


1.分类

在这里插入图片描述


2.成员内部类

在这里插入图片描述


3.内部类使用方法\规则

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


推荐阅读
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • JVM 学习总结(三)——对象存活判定算法的两种实现
    本文介绍了垃圾收集器在回收堆内存前确定对象存活的两种算法:引用计数算法和可达性分析算法。引用计数算法通过计数器判定对象是否存活,虽然简单高效,但无法解决循环引用的问题;可达性分析算法通过判断对象是否可达来确定存活对象,是主流的Java虚拟机内存管理算法。 ... [详细]
  • 个人学习使用:谨慎参考1Client类importcom.thoughtworks.gauge.Step;importcom.thoughtworks.gauge.T ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Java中包装类的设计原因以及操作方法
    本文主要介绍了Java中设计包装类的原因以及操作方法。在Java中,除了对象类型,还有八大基本类型,为了将基本类型转换成对象,Java引入了包装类。文章通过介绍包装类的定义和实现,解答了为什么需要包装类的问题,并提供了简单易用的操作方法。通过本文的学习,读者可以更好地理解和应用Java中的包装类。 ... [详细]
  • 本文介绍了Java中Hashtable的clear()方法,该方法用于清除和移除指定Hashtable中的所有键。通过示例程序演示了clear()方法的使用。 ... [详细]
  • 本文介绍了如何在给定的有序字符序列中插入新字符,并保持序列的有序性。通过示例代码演示了插入过程,以及插入后的字符序列。 ... [详细]
author-avatar
水平蓝精灵天堂_678
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有