Java中的异常处理机制的简单原理和应用。

2023-11-06

异常是指java程序运行时(非编译)所发生的非正常情况或错误,与现实生活中的事件很相似,现实生活中的事件可以包含事件发生的时间、地点、人物、情节等信息,可以用一个对象来表示,Java使用面向对象的方式来处理异常,它把程序中发生的每个异常也都分别封装到一个对象来表示的,该对象中包含有异常的信息。

Java对异常进行了分类,不同类型的异常分别用不同的Java类表示,所有异常的根类为java.lang.Throwable,Throwable下面又派生了两个子类:Error和Exception,Error 表示应用程序本身无法克服和恢复的一种严重问题,程序只有死的份了,例如,说内存溢出和线程死锁等系统问题。Exception表示程序还能够克服和恢复的问题,其中又分为系统异常和普通异常,系统异常是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件死掉,例如,数组脚本越界(ArrayIndexOutOfBoundsException),空指针异常(NullPointerException)、类转换异常(ClassCastException);普通异常是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。

java为系统异常和普通异常提供了不同的解决方案,编译器强制普通异常必须try..catch处理或用throws声明继续抛给上层调用方法处理,所以普通异常也称为checked异常,而系统异常可以处理也可以不处理,所以,编译器不强制用try..catch处理或用throws声明,所以系统异常也称为unchecked异常。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中的异常处理机制的简单原理和应用。 的相关文章

  • eclipse行号状态行贡献项是如何实现的?

    我需要更新状态行编辑器特定的信息 我已经有了自己的实现 但我想看看 eclipse 贡献项是如何实现的 它显示状态行中的行号 列位置 谁能指点一下 哪里可以找到源代码 提前致谢 亚历克斯 G 我一直在研究它 它非常复杂 我不确定我是否了解完
  • Android:文本淡入和淡出

    我已阅读此 stackoverflow 问题和答案 并尝试实现文本淡入和淡出 Android中如何让文字淡入淡出 https stackoverflow com questions 8627211 how to make text fade
  • Thymeleaf 3 Spring 5 映射加载字符串而不是 HTML

    我正在尝试将 Spring 5 和 Thymeleaf 3 一起配置 我正在 Eclipse 上工作 我使用 全新安装 构建并使用 springboot run 运行应用程序 我已经设置了一个控制器和几个模板 但 Thymeleaf 似乎找
  • Android中如何使用JNI获取设备ID?

    我想从 c 获取 IMEIJNI 我使用下面的代码 但是遇到了未能获取的错误cls 它总是返回NULL 我检查了环境和上下文 它们都没有问题 为什么我不能得到Context班级 我在网上搜索了一下 有人说我们应该使用java lang Ob
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 如何在php中根据url从mysql获取数据?

    我在 mysql 数据库中有一个页表 其中包含 page name title content author 字段 我想用 php 来获取它http www domain com index php page page name http
  • 断言 Kafka 发送有效

    我正在使用 Spring Boot 编写一个应用程序 因此要写信给 Kafka 我这样做 Autowired private KafkaTemplate
  • IN 子查询中的 GROUP_CONCAT

    SELECT A id A title FROM table as A WHERE A active 1 AND A id IN SELECT GROUP CONCAT B id from B where user 3 如果我启动子查询SE
  • 从jar中获取资源

    我有包含文件的 jar myJar res endingRule txt myJar wordcalculator merger Marge class 在 Marge java 中我有代码 private static final Str
  • 退出 PHP 脚本后终止或停止 MySQL 查询

    我在工作中运行一个统计服务器 由于运行的查询量很大 该服务器有时会变得非常慢 我们的营销团队使用它作为主要统计工具 团队中的某些人有时会在脚本结束之前退出脚本 通过关闭浏览器或选项卡 同时 SQL 查询继续执行 当有人关闭或离开 PHP 脚
  • Jetty、websocket、java.lang.RuntimeException:无法加载平台配置器

    我尝试在 Endpoint 中获取 http 会话 我遵循了这个建议https stackoverflow com a 17994303 https stackoverflow com a 17994303 这就是我这样做的原因 publi
  • 如何将 HTML 链接放入电子邮件正文中?

    我有一个可以发送邮件的应用程序 用 Java 实现 我想在邮件中放置一个 HTML 链接 但该链接显示为普通字母 而不是 HTML 链接 我怎样才能将 HTML 链接放入字符串中 我需要特殊字符吗 太感谢了 Update 大家好你们好 感谢
  • 使用 Elastic Beanstalk 进行 Logback

    我在使用 Elastic Beanstalk 记录应用程序日志时遇到问题 我正在 AWS Elastic Beanstalk 上的 Tomcat 8 5 with Corretto 11 running on 64bit Amazon Li
  • 轻松的反应

    我有一个与这里描述的类似的案例 动态更改RESTEasy服务返回类型 https stackoverflow com questions 3786781 dynamically change resteasy service return
  • 使用 HtmlUnit 定位弹出窗口

    我正在构建一个登录网站并抓取一些数据的程序 登录表单是一个弹出窗口 所以我需要访问这个www betexplorer com网站 在页面的右上角有一个登录链接 写着 登录 我单击该链接 然后出现登录弹出表单 我能够找到顶部的登录链接 但找不
  • 在 Spring 上下文中查找方法级自定义注释

    我想知道的是 所有的类 方法Spring http en wikipedia org wiki Spring Framework注释为 Versioned的bean 我创建了自定义注释 Target ElementType METHOD E
  • 通过Java从MySQL中获取大量记录

    有一个 MySQL 表 服务器上的用户 它有 28 行和 100 万条记录 也可能会增加 我想从这个表中获取所有行 对它们进行一些操作 然后将它们添加到 MongoDB 中 我知道通过简单的 从用户中选择 操作来检索这些记录将花费大量时间
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • Java 和/C++ 在多线程方面的差异

    我读过一些提示 多线程实现很大程度上取决于您正在使用的目标操作系统 操作系统最终提供了多线程能力 比如Linux有POSIX标准实现 而windows32有另一种方式 但我想知道编程语言水平的主要不同 C似乎为同步提供了更多选择 例如互斥锁
  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci

随机推荐

  • 全网唯一最全彻底删除VS及VS注册表!

    当我们不再需要vs或者vs ide出现问题 并且你的专业课老师不教的情况下 怎么样独自且快速的情况下卸载干净 需要重装时 发现总是卸载不干净 卸载重装后该存在的问题还是存在 没有因重装而解决 那么如何彻底的卸载vs不留残留 设备 HPZHA
  • android集成flutter No implementation found for method getDatabasesPath on channel com.tekartik.sqflite

    项目场景 原有android项目集成flutter 环境 flutter sdk 1 17 4 android studio 3 6 3 android sdk 29 问题描述 运行报错 Unhandled Exception Missin
  • 模板和容器

    1 什么是模板 模板定义 模板就是实现代码重用机制的一种工具 它可以实现类型参数化 即把类型定义为参数 从而实现了真正的代码可重用性 我们知道 C 是一种 强类型 的语言 也就是说一个变量 编译器必须确切的知道它的类型 而模板就是构建在这个
  • 爬虫实战学习----基础

    今天在学习爬虫入门的过程中 遇到了百度的反爬 发送请求无法得到内容 出现 网络不给力 稍后重试 或者 百度安全验证 写一下当时的解决方案 最基础的导入 发送请求和打印数据如下 导入模块 import requests 发送get请求 res
  • tf好朋友之matplotlib的使用——连续图像部分plt.plot

    tf好朋友之matplotlib的使用 连续图像部分plt plot 连续图像常用函数及其作用 plt plot plt figure plot 应用示例 学了这么多机器学习 好像还不知道这么去展示我的学习成果 一想到matlab里面有这么
  • 树莓派上手第一课:系统烧录,树莓派的配置,获取ip,ssh,远程桌面...

    最近树莓派涨价挺高的 卖了我的3b 小赚了几百块钱 借了朋友的3b来写篇关于树莓派的入门博客吧 主要包括系统烧录 树莓派的配置 ssh 远程桌面 系统烧录 准备一个树莓派 8g及8g以上的tf卡 键盘 鼠标 HDMI输出的显示屏 去官网下载
  • 大数据、云计算、区块链、人工智能!你选择哪个?

    日前 在以 突破 为主题的t112018暨talkingdata数值智能峰会上 数千名相干行业从业者研讨以数值驱动冲破发展的新模式 新路径 目前计算机相干领域的就业情况还是比较不错的 随着大数据 物联网 区块链 人工智能等技术的快速进展 这
  • 基于单片机智能温室大棚控制系统

    功能介绍 以51单片机作为主控系统 DS18B20温度采集模块检测温度 光敏电阻和ADC0832组成的光照检测模块 土壤湿度检测模块检测土壤湿度 CO2检测模块检测CO2浓度 LCD1602显示模块显示测量值 若温度小于温度最小值 声光报警
  • Operator方式下的Prometheus监控二进制方式部署的kubernetes组件

    Operator方式下的Prometheus默认监控的是以静态pod形式部署的kubernetes组件 kubectl kube controller manager kube scheduler 如果需要监控以rpm包或者二进制包方式部署
  • 关于router-link和router-view

    router link和router view在同一个vue文件 A vue 里面 router link设置路由跳转 router view根据路由显示组件 在同一个页面中 A vue组件是全局的页面 B vue组件和C vue组件是A页
  • 最强的表格组件—AG Grid使用以及License Key Crack

    PS 想要官方 License Key翻到最后面 Ag Grid简介 Ag Grid 是一个高级数据网格 适用于JavaScript TypeScript应用程序 可以使用React Angular和Vue等流行框架进行集成 它是一种功能强
  • 系统地址和服务器地址不一致,服务器和ip地址不一致t3

    服务器和ip地址不一致t3 内容精选 换一换 输入AK SK后 已经确认AK SK内容准确 但仍然认证失败 界面报错关键信息如下 查看 root MindStudioMS 2 3 system log idea log 有如下日志报错 从日
  • 有符号数的四舍五入(round)(verilog实现)

    有符号数的表达方式见上篇 有符号小数的表示 扩展和计算 weixin 42330305的博客 CSDN博客 对于有符号数 正数和负数的四舍五入有些许不同 需要区别对待 一 正数 对于正数来说 如果被截掉的数的最高位为1 则结果为保留的数 1
  • 【分析方法】A/B test

    A B测试是什么 怎么做 有什么作用呢 本篇文章为大家分享了几种应用场景及案例 告诉大家如何在团队中有效推进A B测试 一 A B测试 为了检测某些用户到底属于哪一类别 我们定制了A类用户喜欢的产品和B类用户喜欢的产品 统计并对比了不同方案
  • 给jupyter添加多个python版本的kernel

    两种方法 1 想添加的python版本已存在 1 通过ipykernel为jupyter添加python环境 activate env name python m ipykernel install name env name 2 关闭py
  • Windows安装Anaconda,创建pytorch环境,pycharm配置环境

    目录 1 简介 2 安装Anaconda 3 创建一个独立的环境 4 安装依赖的库 5 安装pytorch 6 pycharm中使用conda环境 7 到这里安装就结束了 希望对您有所帮助 如有什么错误请指正 1 简介 安装Anaconda
  • C++:重载

    一 重载 重载 重载函数是函数的一种特殊情况 为方便使用 C 允许在同一范围中声明几个功能类似的同名函数 但是这些同名函数的形式参数 指参数的个数 类型或者顺序 必须不同 也就是说用同一个函数完成不同的功能 重载函数常用来实现功能类似而所处
  • git fatal: unable to access  Failed to connect to localhost port 1080: Connection refused

    git 拉取 更新子模块失败 提示失败 Submodule libXesBase https git xxxxx com xesoa libXesBase git registered for path libXesBase Cloning
  • 整合google,51ditu和mapbar的地图API

    http blog 163 com goodluck lq 126 blog static 63285386201001994058213
  • Java中的异常处理机制的简单原理和应用。

    异常是指java程序运行时 非编译 所发生的非正常情况或错误 与现实生活中的事件很相似 现实生活中的事件可以包含事件发生的时间 地点 人物 情节等信息 可以用一个对象来表示 Java使用面向对象的方式来处理异常 它把程序中发生的每个异常也都