java自学阶段一:基础知识学习

《项目案例—黑马tlias智能学习辅助系统》
目录:

  1. 异常

一:学习目标:

  1. 异常:能够看懂异常信息,了解异常体系结构和分类,掌握异常的两种处理方式,自定义异常。

二、异常:
1.异常的概念:语法错误其实不是异常。
2.异常的分类:
在这里插入图片描述
注意:RuntimeException是指运行的时候可能就会出现报错,不一定会。但是对待这样的情况,我们是需要处理的

3.异常的处理流程:
在这里插入图片描述

异常的处理方式:(看问题怎么看待,如果希望处理,那就用try…catch;如果需要暴露出来,告诉外界这是你们的操作失误,那就用throw往外抛;)
1)使用try:对可能出现的地方,设置另外的执行方案
在这里插入图片描述
2)throws 往外抛
在这里插入图片描述
注意:在Java中,throw和throws都是用于处理异常的关键字。这里还有一个throw的使用,其实也是往外抛异常,但是throw直接在方法体里,预知到了,然后直接往外抛给调用者(抛给用户),throws是定义在方法上的,方便别人查看、调用,知道可能会抛出什么异常,然后你调了,就得处理

,但它们在使用和上下文中有明显的区别。throwthrow用于在方法体中显式地抛出一个异常。
当throw语句被执行时,它会立即终止当前方法的执行,并将控制权转移到最近的能够处理该异常的异常处理器(catch块)。
如果该异常没有被捕获,那么它将被传递给调用者,以此类推,直到被捕获或到达程序的顶层(此时程序将终止)。
throw后面必须跟一个具体的异常对象。
throws:
throws用于声明一个方法可能抛出的异常,但并不在方法体中抛出这个异常。
使用throws关键字可以在方法的签名中声明一个或多个异常,这样调用者就知道需要处理哪些类型的异常。
如果一个方法使用了throws来声明它可能抛出的异常,那么调用该方法的代码要么必须处理这些异常(使用try-catch块),要么它本身也必须声明这些异常(使用throws)。
使用throw的异常示例:
java
public class ExampleWithThrow {     public static void main(String[] args) {  try {  // 调用一个可能会抛出异常的方法  performOperation();  } catch (ArithmeticException e) {  // 处理ArithmeticException异常  System.out.println("捕获到算术异常: " + e.getMessage());  }  }  public static void performOperation() {  int a = 10;  int b = 0;  // 使用throw显式地抛出一个异常  if (b == 0) {  throw new ArithmeticException("除数不能为零");  }   // 如果b不为零,则执行除法操作  int result = a / b;  System.out.println("结果是: " + result);  }  
}
在这个示例中,performOperation方法使用throw关键字显式地抛出了一个ArithmeticException异常。当b为0时,这个异常会被抛出,并在main方法中的try-catch块中被捕获和处理。

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

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

相关文章

ES开发及面试手册

入门基础 简介 Elasticsearch是一个基于Lucene的搜索和分析引擎,它提供了一个分布式、多租户能力的全文搜索引擎,具有HTTP Web界面和无模式JSON文档。 使用场景 什么是全文检索 全文检索 是一种信息检索技术,它允许用户通过输入查询关键词来…

JZ2440笔记:声卡驱动

vi s3c-wm8976.c 在s3c2410-uda1341.c修改驱动,修改硬件部分的控制接口,I2S部分通用不用修改。 1、增加写寄存器操作函数wm8976_write_reg static void wm8976_write_reg(unsigned char reg, unsigned int data) {int i;unsigned long flags;unsigned…

【三维重建NeRF(三)】Mip-NeRF论文解读

本文结合深蓝学院课程学习和本人的理解,欢迎交流指正 文章目录 Mip-NeRF流程简述混叠问题与MipMapMip-NeRF提出的解决办法圆锥台近似计算与集成位置编码(IPE) Mip-NeRF流程简述 Mip-NeRF的大体流程和NeRF基本是一样的,NeRF介绍 创新的部分就是针对NeRF…

生活随笔|我们要成为牛人,不要成为牛马。

哈喽,你好啊,我是雷工! 最近看群里聊天,有个在设计院做建筑电气设计的被裁员了,一顿抱怨; 也有人说今年项目多需要招人的,但招不到合适的; 或许这是常态,任何时候都是&a…

系统安全及应用11

一个新的服务器到手之后,部署服务器的初始化 1、配置IP地址 网关 dns解析(static)内网和外网 2、安装源外网(在线即可),内网(只能用源码包编译安装) 3、磁盘分区,lvm …

[JAVA数组] 三个数的最大乘积

给你一个整型数组 nums ,在数组中找出由三个数组成的最大乘积,并输出这个乘积。 示例 1: 输入:nums [1,2,3] 输出:6示例 2: 输入:nums [1,2,3,4] 输出:24示例 3: 输…

mybatis—plus和mybatis的区别

一前置知识: CRUD操作(create 添加数据read读取数据 update 修改数据delete删除数据) 二,总体概览 MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发工作、提高…

二人订单共享模式:新零售电商盈利新秘诀

电商江湖日新月异,竞争如火如荼,如何脱颖而出,赢得消费者?二人订单共享模式,这是一种全新的商业模式,旨在打造爆款产品,迅速吸引大量客源,并激发消费者重复购买欲望。 首先&#xf…

Centos 报错 One of the configured repositories failed

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 使用yum update更新命令就出现下面问题,系统是刚安装的,然后修改了一下IP变成手动。(排查问题前,先回顾自己做了哪些操作,方便进一步排错&a…

accelerate 的一个tip:early stopping 处可能存在的bug

在分布式训练中进行提前停止时,如果每个进程都有特定的停止条件(例如验证损失),这可能不会在所有进程中同步。 因此,可能在进程 0 中发生中断,而进程 1 则不会——>这将导致代码无限期挂起,直…

C++程序命令行参数学习

argc是参数个数&#xff1b; argv[0]是程序名&#xff0c;argv[1]是第一个参数&#xff1b; 如果输入osgptr1 x &#xff0c;osgptr1是程序名&#xff0c;argc是2&#xff1b; 不算程序名&#xff0c;实际的参数个数是argc-1&#xff1b; #include <iostream>using …

免费!手把手教你用扣子搭建个人知识库

很多人都在寻找一个高效的方式来构建个人知识库&#xff0c;好消息是&#xff0c;随着AI大模型的兴起&#xff0c;每个人都有机会拥有一个熟悉自身的专属AI助手。今天&#xff0c;我就来跟大家详细分享一下如何使用字节跳动推出的神器——扣子&#xff0c;零代码构建个人或企业…

推荐低成本低功耗的纯数字现场可重构IC

CPLD采用CMOS EPROM、EEPROM、快闪存储器和SRAM等编程技术&#xff0c;从而构成了高密度、高速度和低功耗的可编程逻辑器件。 RAMSUN提供的型号LS98003是通用可配置的数字逻辑芯片&#xff0c;有体积小、超低功耗和高可靠性等特点。客户可以根据自己的功能需求设计芯片&#x…

MyBatis:简化数据库操作的强大工具

摘要&#xff1a;本文将介绍MyBatis&#xff0c;一个流行的Java持久层框架&#xff0c;它通过简单的API和易用的特性&#xff0c;帮助开发者更高效地进行数据库操作。我们将探讨MyBatis的核心概念、配置和使用方法&#xff0c;并通过示例展示其在实际项目中的应用。 正文&…

Flutter 中的 TooltipTheme 小部件:全面指南

Flutter 中的 TooltipTheme 小部件&#xff1a;全面指南 Flutter 是一个由 Google 开发的跨平台 UI 框架&#xff0c;它提供了丰富的组件来帮助开发者构建美观、响应式的用户界面。在 Flutter 的 Material 组件库中&#xff0c;Tooltip 是一个轻量级的组件&#xff0c;用于在用…

O2O : Finetuning Offline World Models in the Real World

CoRL 2023 Oral paper code Intro 算法基于TD-MPC&#xff0c;利用离线数据训练世界模型&#xff0c;然后在线融合基于集成Q的不确定性估计实现Planning。得到的在线数据将联合离线数据共同训练目标策略。 Method TD-MPC TD-MPC由五部分构成: 状态特征提取 z h θ ( s ) …

Mongodb的数据库简介、docker部署、操作语句以及java应用

Mongodb的数据库简介、docker部署、操作语句以及java应用 本文主要介绍了mongodb的基础概念和特点&#xff0c;以及基于docker的mongodb部署方法&#xff0c;最后介绍了mongodb的常用数据库操作语句&#xff08;增删改查等&#xff09;以及java下的常用语句。 一、基础概念 …

PhpSpreadsheet表格导出

个人笔记记录 使用PhpSpreadsheet 导出excel。 多重表头生成excel 表 //读取数据库public function demo1(){// 连接spc数据库$config Config::get(databaseedc);$db Db::connect($config);$data $db->name("xxxx")->alias(a)->field(main_header, sub_…

《网络安全技术 生成式人工智能服务安全基本要求》征求意见稿

1. 训练数据安全要求 &#xff08;1&#xff09;数据来源安全&#xff1a; 采集来源管理&#xff1a; 采集数据前应进行安全评估&#xff0c;含违法不良信息超过5%的数据源不得使用。 采集后需核验&#xff0c;含违法不良信息超过5%的数据不得用于训练。 不同来源训练数据搭…

004 MySQL练习

选课系统中存在这样的三种表 学生表(Student): 学号(S#)、学生姓名(Sname)、学生年龄(Sage)、学生性别(Ssex)&#xff1b; 课程表(Course):课程编号(C#)、课程名称(Cname)、教师编号(T#)&#xff1b; 成绩表(SC)&#xff1a;学号(S#)、课程编号(C#)、成绩(score)&#xff1b; 教…