首页 > 其他分享 >运行时的异常和一般异常的区别

运行时的异常和一般异常的区别

时间:2023-05-10 11:31:48浏览次数:24  
标签:exception 区别 处理 线程 catch 异常 运行


这个题目是一个笔试题目,当时说了好多还是没有说道点子上,可悲了。


其实有一句话到是很靠谱,那就是运行时的异常不必要被catch的,比如检查数组是否越界,



内存是否爆掉了;而一般的异常比如文件是否存在等要强制被catch的


Java提供了两类主要的异常:runtime exception和checked exception。checked 异常也就是我们经常遇到的IO异常,以及SQL异常都是这种异常。对于这种异常,JAVA编译器强制要求我们必需对出现的这些异常进行catch。所以,面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。 但是另外一种异常:runtime exception,也称运行时异常,我们可以不处理。当出现这样的异常时,总是由虚拟机接管。比如:我们从来没有人去处理过NullPointerException异常,它就是运行时异常,并且这种异常还是最常见的异常之一。 出现运行时异常后,系统会把异常一直往上层抛,一直遇到处理代码。如果没有处理块,到最上层,如果是多线程就由Thread.run()抛出,如果是单线程就被main()抛出。抛出之后,如果是线程,这个线程也就退出了。如果是主程序抛出的异常,那么这整个程序也就退出了。运行时异常是Exception的子类,也有一般异常的特点,是可以被Catch块处理的。只不过往往我们不对他处理罢了。也就是说,你如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止。 如果不想终止,则必须扑捉所有的运行时异常,决不让这个处理线程退出。队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志。不应该由于异常数据而影响下面对正常数据的处理。在这个场景这样处理可能是一个比较好的应用,但并不代表在所有的场景你都应该如此。如果在其它场景,遇到了一些错误,如果退出程序比较好,这时你就可以不太理会运行时异常,或者是通过对异常的处理显式的控制程序退出。

标签:exception,区别,处理,线程,catch,异常,运行
From: https://blog.51cto.com/u_16034393/6260893

相关文章

  • 工作异常问题记录
    kafka 1.kafka"log_level":"log_error","errmsg":"Errorwhileprocessing:ConsumerRecord(topic=xxx,partition=xx,offset=xxx,CreateTime=xx,serializedkeysize=75,serializedvaluesize=xx,headers=RecordHea......
  • C++标准库和模板库的区别和联系?
    C++标准库包含模板库。C++标准库由三组库构成(std::是个名称空间标识符,C++标准库中的函数或者对象都是在命名空间std中定义的):(1)C库:由C标准库扩展而来,强调结构、函数和过程,不支持面向对象技术。(2)C++库:增加了面向对象的库,包含了既有关键功能的类(3)标准模板库(STL):高效的C++程序库。该......
  • 小程序开发中的插件、组件、控件到底有什么区别?
    ​小程序插件代码由一些自定义组件和JS代码文件构成,插件开发者在发布插件时,这些代码被上传到后台保存起来。当小程序使用插件时,使用者需填写插件的AppID和版本号,就可从后台获取相应的插件代码。小程序代码编译时,插件代码会被嵌入到小程序中,与小程序一起编译运行。由于在小......
  • 异常
    异常异常简介异常是指控制器未按照预期流程执行,本文所提异常特指单片机跑飞,复位的状况异常可以看成是单片机的一种自我保护机制,当发送非预期情况时,控制器主动进入一个实际上无任何逻辑的无限循环子函数,从而防止进一步发生错误,通常如下操作可能进入空循环。异常的发生A.非法操......
  • Notepad++运行Python
    从Notepad++可以直接配置快捷键运行当前python程序。点击Run-Run...在弹出的输入框内输入以下命令,点击Save...分配一个名称与快捷键,即可以按快捷键运行当前程序。cmd/kcd/d"$(CURRENT_DIRECTORY)"&python"$(FULL_CURRENT_PATH)"&pause&exitcmd/k:告诉......
  • C# HttpListener 和 HttpServer区别
    HttpListener和HttpServer都是C#中用于创建HTTP服务器的类库,它们的作用都是监听HTTP请求,并向客户端发送HTTP响应。它们的主要区别在于实现方式和使用场景。HttpListener是.NETFramework中的一个类,它提供了一种基于事件的异步API,可以用于创建一个轻量级的HTTP服......
  • C++异常和错误处理机制:如何使您的程序更加稳定和可靠
    在C++编程中,异常处理和错误处理机制是非常重要的。它们可以帮助程序员有效地处理运行时错误和异常情况。本文将介绍C++中的异常处理和错误处理机制。什么是异常处理?异常处理是指在程序执行过程中发生异常或错误时,程序能够捕获并处理这些异常或错误的机制。例如,当程序试图访问......
  • Visual Studio 2022 设置 IIS Express 运行在 32 位模式
    当:1、在VisualStudio2022中开发需要访问Access数据库的网站项目时,遇到错误:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。2、在VisualStudio2022中开发需要访问SQLite数据库的网站项目时,遇到错误:未能加载文件或程序集“System.Data.SQLite.DLL”或它的......
  • [oeasy]python0050_动态类型_静态类型_编译_运行
    动态类型_静态类型回忆上次内容上次了解了帮助文档的生成开头的三引号注释可以生成帮助文档文档可以写成网页 python3本身也有在线的帮助手册 目前的程序提高了可读性 ​ 添加图片注释,不超过140字(可选......
  • C++异常和错误处理机制:如何使您的程序更加稳定和可靠
    在C++编程中,异常处理和错误处理机制是非常重要的。它们可以帮助程序员有效地处理运行时错误和异常情况。本文将介绍C++中的异常处理和错误处理机制。什么是异常处理?异常处理是指在程序执行过程中发生异常或错误时,程序能够捕获并处理这些异常或错误的机制。例如,当程序试图访问一......