java程序出错_java程序错误类型及异常处理

article/2025/7/21 21:55:31

一、程序的错误类型

在程序设计中,无论规模是大是小,错误总是难免的。程序的设计很少有能够一次完成,没有错误的(不是指HelloWorld这样的程序,而是要实现一定的功能,具备一定实用价值的程序),在编程的过程中由于种种原因,总会出现这样或那样的错误,这些程序的错误就是我们常说的“Bug”,而检测并修正这些错误的方法就是“Debug”(调试)。

基本上所有的集成开发环境都提供了强大的和程序调试功能,在程序进行编译,连接,运行时,会对程序中错误进行诊断。

程序的错误可以抽象分为三类:语法错误、运行错误和逻辑错误。

1、语法错误

是指由于编程中输入不符合语法规则而产生的。程序编译就通不过,程序不能运行起来。此类错误最简单,调试起来比较容易

例如:表达式不完整、缺少必要的标点符号、关键字输入错误、数据类型不匹配、循环语句或选择语句的关键字不匹配等。通常,编译器对程序进行编译的过程中,会把检测到的语法错误以提示的方式列举出来,又称为编译错误。

语法错误的调试,则可以由集成开发环境提供的调试功能来实现,在程序进行编译时,编译器会对程序中的语法错误进行诊断。

编译诊断的语法错误分为3中:致命错误、错误和警告。

(1)致命错误:这个错误大多是编译程序内部发生的错误,发生这类错误时,编译被迫中止,只能重新启动编译程序,但是这类错误很少发生,为了安全,编译前最好还是先保存程序。

(2)错误:这个错误通常是在编译时,语法不当所引起的。例如:括号不匹配,变量未声明等。产生这类错误时,编译程序会出现报错提示,我们根据提示对源程序进行修改即可。这类错误是出现最多的。

(3)警告:是指被编译程序怀疑有错,但是不确定,有时可强行通过。例如:没有加void声明的主函数没有返回值,double数据被转换为float类型等。这些警告中有些会导致错误,有些可以通过。

常规解决方法:此类错误一般程序编译系统会自动提示相应的错误地点和错误原因,比如哪一行代码少了个括号等诸如此类的提示,常见的错误,看懂直接改正即可,如果是看不懂原因,可以将错误提示信息输入搜索引擎查找一下,一般都能找到具体的解决办法。或者有些编程平台会本身提供一个本地或者在线的信息库,提供详细的错误原因和解决办法,比如微软的.NET开发平台。

2、运行错误

指程序在运行过程中出现的错误。程序通过语法错误检测,但是运行的时候出现错误,导致程序被迫终止,此类错误有特定的发生条件,因此能够准确的定位错误代码段,因而调试也比较方便。

例如:除法运算时除数为0 、数组下标越界、文件打不开、磁盘空间不够、数据库连接错误等。

此类错误发生时,编译平台一般也会提示相应的信息,对于常规的错误会有比较精确地提示,但有时提示的错误原因会比较模糊,但因为此类错误一般在程序运行时,只在特定的条件下才会发生,所以根据错误发生的条件,能够大致判断程序出错的代码段,结合错误的原因,也能比较方便的调试出错误。

3、逻辑错误

程序运行后,没有得到设计者预期的结果,这就说明程序存在逻辑错误。这种错误在语法上是有效的,但是在逻辑上是错误的。

程序运行了,也没有出错,但是执行出来的结果不是用户想要的,分为两种情况:

A、       能够看出错误:比如查询工资大于5000的人员名单,却出现了3000的;

B、       看不出错误,直到因缘际会发现程序肯定出错了,后果很严重:比如进行一个符合大型运算,把某个常数输入错了,最后的结果人工无法判断对错,又以该结果进行其它的运算等等,最后发现错了误差过大,就得从头排查错误。

例如:使用了不正确的变量,指令的次序错误,循环的条件不正确,程序设计的算法考虑不周全等。通常,逻辑错误也会附带产生运行错误。在一般情况下,编译器在编译程序时,不能检测到程序中的逻辑错误,也不会产生逻辑错误的提示,因此逻辑错误比较难排除,需要程序员仔细的分析程序,并借助集成开发环境提供的调试工具,才能找到出错的原因,并排除错误。

二、java的异常处理(错误处理)

程序的错误就是通常的异常,也叫Exception。

对于语法错误,java编译系统在编就能发现检查出错误。

对于逻辑错误,编译系统是无法发现错误的,错误需要人为去发现排除错误。

对于运行错误,Java语言中代表异常时,使用一个专门的类来代表一种特定的异常情况,在系统中传递的异常情况就是该类的对象,所有代表异常的类组成的体系就是Java语言中的异常类体系。

1、java异常类

Java的异常是一个对象,所有的异常都直接或间接地继承Throwable类。Throwable类的继承层次结构如下:

1342108252_8071.png

为了方便对于这些可传递对象的管理,Java API中专门设计了java.lang.Throwable类,只有该类子类的对象才可以在系统的异常传递体系中进行。该类的两个子类分别是:

1)Error类

该类代表错误,指程序无法恢复的异常情况。对于所有错误类型以及其子类,都不要求程序进行处理。常见的Error类例如内存溢出StackOverflow


http://chatgpt.dhexx.cn/article/y3pCQ7Hp.shtml

相关文章

VMware.exe应用程序错误--应用程序无法正常启动(0xc000007b)错误解决方法

1.找到VMware安装包,双击打开安装包 2.进去到选择修复界面 3.等待修复完成然后重启电脑再进去VMware正常工作了 有什么问题可以在评论区交流

计算机显示应用程序错误窗口,电脑提示explorer.exe应用程序错误怎么办|电脑explorer.exe应用程序错误的解决方法...

‍‍ 大家应该都知道explorer.exe是什么进程,这是windows系统中的资源管理器,是windows系统提供的资源管理工具。可是有很多用户遇到了电脑提示explorer.exe应用程序错误的情况,这该怎么办呢?下面由小编跟大家介绍电脑explorer.ex…

应用程序错误(0xc0000135)

dll文件是什么? DLL(Dynamic Link Library)文件为动态链接库文件,又称“应用程序扩展”,是软件文件类型。 也是可执行文件,它应许程序共享执行特殊任务所必需的代码和其他资源。 dll文件操作: 理论上DLL…

计算机应用程序错误怎么解决办法,应用错误,教您怎么解决explorer.exe应用程序错误...

小可爱小可爱,你们有没有遇到过“explorer.exe 应用程序错误”这样的问题,有的话快来小编这儿呀,我这儿有解决方法~~不信你们往下滑就知道啦~下面小编我就开始说解决“explorer.exe 应用程序错误”的办法啦~~ 小可爱们,你们知道ex…

中国各个城市OSM地图数据

下载地址:http://download.openstreetmap.fr/extracts/asia/china/

OSM地图瓦片下载器1.0版介绍(win64)

简介 为方便在工作中随时使用OSM瓦片数据(公开链接的),特编写此下载工具,并会一直更新,欢迎关注。如果需要了解基本的瓦片知识,请移步 地图瓦片讲解 注意OSM坐标系是WGS84-webMercator 特点 1.下载级别、…

如何实现OSM地图本地发布并自定义配图

文章目录 1、缘起2、准备环境2.1、安装linux系统2.2、安装docker2.3、安装Docker Compose2.4、安装git 3、发布地图3.1、拉取代码3.2、测试网络3.3、处理数据3.4、发布矢量瓦片服务3.5、自定义地图样式3.6、注意 4、总结 1、缘起 OpenStreetMap(简称OSM&#xff09…

Openlayers案例1——加载OSM地图

1. 代码块 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>加载OSM地图</title><!-- CSS路…

Python实现OSM地图数据解析——Pydriosm

目录 1. Pydriosm简介2. 安装3. 使用方法3.1 下载数据3.2 解析文件3.3 不同geometry 类型及其数据结构 4. 总结参考 1. Pydriosm简介 Pydriosm是一个开源的OSM地图文件下载和解析工具。通过OSM官方API为研究人员/从业者提供OSM地图文件在线下载和本地OSM地图文件读取解析功能&…

将OSM地图转化成OpenDRIVE

关于OSM 以下来自百度引用&#xff1a;OpenStreetMap&#xff08;简称OSM&#xff09; 开源wiki地图&#xff0c;很多人们习以为常可以随便拿来用的地图&#xff0c;其实有很多法律和技术上的限制&#xff0c;这些限制使得像地图这类的地理资讯无法有创意、有效率地被再利用。开…

OSM地图本地发布(四)-----Geoserver发布自定义地图

一、准备工作 1. 安装jdk 1.8、tomcat 2.安装Geoserver&#xff0c;下载地址&#xff1a;https://sourceforge.net/projects/geoserver/files/GeoServer/2.19.2/ 3.自定义图层准备&#xff0c;OSM本地发布(三)-----自定义图层提取 4.下载osmsld.zip样式文件&#xff0c;链接…

OSM地图本地发布(三)-----自定义图层提取

一、准备工作 1.完成数据准备OSM本地发布(二)-----数据准备 2.推荐使用Navicat操作数据库 3.下文是在《在GeoServer中为OpenStreetMap数据设置OSM样式》基础上的改进&#xff0c;可直接看该文实现图层发布 二、OSM字段说明 planet_osm_line,planet_osm_point,planet_osm_pol…

Python实现OSM地图数据解析——OSM2Rail

目录 1. 简介2. 功能特色2.1 自动下载OpenStreetMap地图数据包2.2 提供更精确的铁路网络数据解析2.3 扩展GMNS标准 3. 快速上手4. 效果展示5. 相关阅读 1. 简介 前期为大家介绍了由美国亚利桑那州立大学ASU TransAI Lab团队开发的开源python依赖库——OSM2GMNS&#xff0c;不仅…

下载OSM地图数据

OSM数据有几种下载方式&#xff1a;1&#xff09;直接通过wget下载&#xff1b; 2&#xff09;通过官网直接导出指定区域&#xff1b; 3&#xff09;通过QGIS下载指定区域 1.通过wget下载数据 进入http://download.geofabrik.de/&#xff0c; 可以按照自己的需求下载不同国家不…

QGIS获取OSM地图矢量数据

目录 一、QGIS加载OSM底图图层 二、quickosm插件导入openstreetmap数据 三、数据导出 四、Overpass query查询用法 五、写在最后 一、QGIS加载OSM底图图层 1.安装QuickMapServices插件&#xff0c;在网络菜单下可以加载各类底图 2.插件安装后&#xff0c;通过插件打开OS…

OSM地图本地发布(一)-----概述

目录 一、前言 二、开源GIS介绍 1.前端GIS框架 2.后端技术 3.空间数据库 4.地图服务器 4.GIS软件 三、技术选型 四、文章目录 1.OSM本地发布(一)-----概述 2.OSM本地发布(二)-----数据准备 3.OSM本地发布(三)-----自定义图层提取 4.OSM本地发布(四)-----Geoserver…

中国省份/城市OSM地图数据

下载访问地址 网站截图

数据分享|2023年OSM道路数据(全国,分省,分市)

道路数据是我们在各项研究中经常使用的数据!道路数据虽然很常用,但是却基本没有能下载最近年份道路数据的网站,所以很多人不知道如何获到道路数据。 本次我们为大家推荐的下载道路数据的网站是Open Street Map!我们先来了解下Open Street Map,其简称为OSM,是一个开源的地…

基于 OSM 构建全球瓦片地图(一):概述

一、什么是OSM 开放街道地图&#xff08;英语&#xff1a;OpenStreetMap&#xff0c;缩写为OSM&#xff09;&#xff0c;其概念启发自维基百科网站&#xff0c;是一个建构自由内容之网上地图协作计划&#xff0c;目标是创造一个内容自由且能让所有人编辑的世界地图。 从2007年…

Python实现OSM地图数据解析——OSM2GMNS

目录 1. 开源地图OSM2. 数据解析方法对比3. OSM2GMNS3.1 关于GMNS数据格式3.2 安装方法3.3 使用方法3.3.1 地图数据下载3.3.2 数据解析 3.4 输出文件 4. 可视化5. 总结参考 1. 开源地图OSM OpenStreetMap&#xff08;www.openstreetmap.org&#xff09;是一款知名的开源地图数…