java学习-5

news/2025/2/22 13:45:01/文章来源:https://www.cnblogs.com/foxt/p/18726742

异常

java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类

在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception

异常

ErrorException的区别:Error通常是灾难性的致命错误,是程序无法控制和处理的,当出现这些异常时,java虚拟机一般会选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常

异常处理机制

抛出异常

捕获异常

异常处理5个关键字

try,catch,finally,throw,throws

try{//try 监控区域}catch(异常类型 e){//catch想要捕获的异常}catch(){//层层递进的关系,大异常通常需要放在最后//假设要捕获多个异常:从小到大}finally{//最后无论出没出异常,都要执行}

快捷键 ctrl+alt+t

抛出异常

//假设这方法中,处理不了这个异常,方法上抛出异常
public void test(int a,int b)throws ArithmeticException{if(b==0){//throw  throwsthrow new ArithmeticException();//主动的抛出异常,一般在方法中使用}
}

自定义异常

用户可以自定义异常,用户自定义异常类,只需继承Exception类即可

在程序中使用自定义异常类,大体可分为以下几个步骤:

  1. 创建自定义异常
  2. 在方法中通过throw关键字抛出异常对象
  3. 如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出方法调用者的异常,继续进行下一步操作
  4. 在出现异常方法的调用者中捕获并处理异常
//自定义的异常
public class MyException extends Exception{//传递数字>10private int detail;public MyException(int a){this.detail=a;}//异常的打印信息public String toString(){return "MyException{"+detail+'}';}
}public class Test{//可能会存在异常的方法public static void test(int a) throws MyException{if(a>10){throw new MyException(a);//抛出}}
}

实际应用中的经验总结

  • 处理运行时异常,采用逻辑去合理规避同时辅助try-catch处理
  • 在多重catch块后面,可以加上一个catch(Exception)来处理可以会被遗漏的异常
  • 对于不确定的代码,也可以加上try-catch,来处理潜在的异常
  • 尽量去处理异常,切忌只是简单地调用printStackTrace()去打印输出
  • 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  • 尽量添加finally语句块去释放占用的资源

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/887195.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DeepSeek 在线使用开发服务

14:00-14:50上阿里云百炼:不用下载, 话题1 上百炼,轻松调用稳定高限流的 DeepseekAPI 服务 ,驱动企业新跨越。话题2 上百炼,高效、灵活定制 Deepseek 专属智能体,点燃业务增长引擎14:50-15:20 云上解锁 DeepSeek 技能密码话题 DeepSeek 快速部署、训练、蒸馏全体验15:2…

SSH服务器“Failed to start OpenSSH Server daemon”

SSH服务器“Failed to start OpenSSH Server daemon” 在使用FinalShell连接Linux虚拟机的时候连接失败。 以下是解决方法:先查看sshd(ssh服务)状态,发现SSH打开失败 systemctl status sshd.service查看具体的原因---远程连接的SSH没有获得用户和用户组的权限。 sshd -t顺序执…

任务管理智能化:重塑工作方式的必备工具

智能任务管理工具是一类能够自动化处理任务分配、进度跟踪、团队协作等任务管理活动的软件。这类工具通常利用先进的算法和人工智能技术,帮助用户更高效地完成项目管理、日常任务规划等工作。以下是一些知名的智能任务管理工具及其特点: 一、板栗看板 ● 简介:一款智能驱动的…

猿大师播放器:智慧安防网页播放RTSP H.265实时监控革命,无需转码终极解决方案

一、智慧安防的致命瓶颈:当传统技术拖累生命安全在智慧城市、工业安全、应急指挥等场景中,实时视频监控是守护生命与财产的核心防线。然而,传统RTSP播放方案在延迟、成本、稳定性上的缺陷,正在成为安防系统的“阿喀琉斯之踵”。1. 服务器转码方案:实时监控的“致命延迟”3…

WSL2走主机IP地址代理的方式

前言 工作需求导致需要使用到WSL2,git的时候出现网络原因无法拉取。故记录一下走完整个WSL2代理的流程 WSL1 和 WSL2 网络的区别 在 WSL1 时代,由于 Linux 子系统和 Windows 共享了网络端口,所以访问 Windows 的代理非常简单。例如 Windows 的代理客户端监听了 8000 端口,那…

「渲染101」开启 UE 渲染的高效之门

在 UE 项目制作中,渲染往往耗时费力。云渲染技术的出现带来转机,其中渲染 101 凭借诸多优势脱颖而出。性价比高到离谱 成本真的是选择云渲染平台的关键!3090 显卡原价 7 元 / 小时,充值优惠后居然能低至 3.5 元 / 小时;4090 显卡原价 11 元 / 小时,最低只要 5.5 元 / 小时…

TidGi 太记 v0.12.0 高效管理工具

软件介绍 TTidGi 是一个基于「太微 TiddlyWiki」的知识管理桌面应用,能够保护隐私内容、高级自动化、自动Git云备份、部署为博客,并且可以通过RESTAPI与Anki等应用连接。旨在帮助用户更好地管理时间、提高工作效率和组织任务。无论是个人使用还是团队协作,TidGi 都能提供灵活…

IDM Internet Download Manager下载神器

软件介绍 Internet Download Manager (简称IDM) 是一款Windows 平台功能强大的多线程下载工具,国外非常受欢迎。支持断点续传,支持嗅探视频音频,接管所有浏览器,具有站点抓取、批量下载队列、计划任务下载,自动识别文件名、静默下载、网盘下载支持等功能。 软件截图下载地…

哪吒2制作幕后揭秘:可可豆动画如何高效协作打造顶级动画?

近期,国产动画电影《哪吒2》引爆市场,成为观众热议的焦点。作为《哪吒之魔童降世》的续作,《哪吒2》不仅延续了前作的精良制作与深刻内涵,更在视觉效果和故事叙事上实现了全面升级。而这一切的背后,离不开制作团队——可可豆动画的高效协作与精益求精的创作态度。可可豆动…

GPU-Z v2.62.00 显卡识别检测工具,用于检测和测试GPU性能,中文汉化版

软件介绍 TechPowerUp GPU-Z中文版是一款知名的显卡识别软件,用于检测和测试GPU性能的专业工具。最新版的GPU-Z提供了关于GPU图形显卡和CPU处理器的详细硬件信息。该软件以单个可执行文件形式提供,绿色便携,无需安装。界面直观简洁,带有启动向导,运行后显示GPU核心频率、传…

项目管理神器:精选工程管理工具大盘点

板栗看板作为一款工程管理软件,在项目管理、任务协同、知识笔记以及个人待办等多个方面展现出其独特的优势。以下是对板栗看板在工程管理方面的详细分析: 一、核心功能 任务可视化管理 ○ 板栗看板采用可视化的看板系统,用户可以将任务以卡片的形式展示在看板上,并轻松拖动…

使用 CloudDM 和飞书流程化管理数据库变更审批

CloudDM 是一个专为团队协同工作打造的数据库数据管控平台。在管控数据库安全变更的过程中,为提高效率,方便用户使用,CloudDM 接入了主流 OA 协同办公系统(包括钉钉、飞书、企业微信),支持实时通知与移动办公,满足广大企业用户的实际需求。 本文将介绍如何使用 CloudDM …