java学习day016

API

1.Number

数字格式化 : # 任意数字,0-9任意单个数字 , 千分位 . 小数点 0 补位

//四位小数
DecimalFormat df = new DecimalFormat("###,###.####");
System.out.println(df.format(1234567.312));//1,234,567.312
//四位小数,不够补0
df = new DecimalFormat("###,###.0000");
System.out.println(df.format(1234567.312));//1,234,567.312

更高精度 : BigDecimal,适合做财务相关软件

//整数
BigInteger b1 = new BigInteger("12312413");
System.out.println(b1);     
//小数        
BigDecimal v = new BigDecimal(4.3);
System.out.println(v);
​
BigDecimal v1 = new BigDecimal(20);
BigDecimal v2 = new BigDecimal(10);
//+
BigDecimal result = v1.add(v2);
System.out.println(result);//30
// -
result = v1.subtract(v2);
System.out.println(result);//10
//*
result = v1.multiply(v2);
System.out.println(result);//200
//l
result = v1.divide(v2);
System.out.println(result);//2
// %
result = v1.remainder(v2);
System.out.println(result);//0

异常机制

一.之前遇到的异常

  • 下标越界异常(指针超范围)
  • 空指针异常(指向null)
  • 类型转换异常(类型不一样)
  • 堆/栈内存溢出(递归)
  • 数字格式化异常(不是纯数字字符串转换)

二. 是什么

        异常就是错误的一种描述
        异常是java中专门响应错误的一种机制,能够有效的处理异常,并使得异常成为程序中的一部分,能够更有力的增强程序鲁棒性更易于调试
        发生异常的原因有很多 :

  1. 用户输入了非法数据
  2. 要找的文件不存在
  3. 网络通信中断
  4. JVM溢出

       功能和目的 : 出现错误后,会终止程序生命周期执行,此时引入异常后,能够保证程序不会终止,并且还能够把错误信息,进行描迷反馈

三.继承体系

四.Execption

4.1 是什么

  • exception作为所有异常类的父类(分为RuntimeException和IOException)

    • RuntimeException : 运行时异常,一般是由于程序员粗心导致,比如空指针,比如 下标越界, 程序员完全可以通过if判断来解决这个问题

    • IOException : 编译时异常,一般需要我们重点学习,另外编译时异常是我们在编码中就需要处理的,如果不处理,不能运行

4.2 常用方法

getMessage() : 获取错误信息 一般反馈给客户查看

printStackTrace() : 打印错误追踪栈帧 一般给程序员查看,用来修改代码

4.3 try

4.3.1 第一种用法(单个异常)

try {// 可能会抛出异常的代码
} catch (IOException e) {// 处理异常的代码
}

4.3.2 第二种用法(多个异常)

一个catch捕捉一个异常

try中可以有多个异常,但是只会有一个异常发生(前面的异常发生后结束try中代码后面的异常不会执行) catch可以捕捉多个异常,但是从上到下必须是从子类到父类,或者是没有继承关系

try{// 程序代码
}catch(异常类型1 异常的变量名1){// 程序代码
}catch(异常类型2 异常的变量名2){// 程序代码
}catch(异常类型3 异常的变量名3){// 程序代码
}

4.3.3 第三种用法

1.7新特性 一个catch可以捕捉多个异常,多个异常使用|隔开,但是异常之间必须是没有哦继承关系,如果有继承关系则直接写父类即可

try{// 程序代码
}catch(异常类型1  | 异常类型2 异常的变量名){// 程序代码
}

4.3.4 第四种用法

java7 新特性 自动关闭资源

//传统写法
try{高风险代码
}catch(异常代码){异常处理代码;
}finally{关闭资源代码
}
try(打开资源代码){高风险代码
}catch(异常类型 异常的变量名){处理异常代码;
}

4.4 throws

4.4.1 第一种用法

  • 只是把问题抛出,不会处理问题,只是一种提醒机制

  • 当我们调用的方法抛出异常, 要么我们处理异常, 要么也抛出

  • throws 可以抛出多个异常,用多个逗号隔开无所谓先后顺序,也无所谓是否继承

方法 throws 异常类型{代码
} 

4.4.2 第二种用法

抛出多个异常,使用逗号隔开 无所谓先后顺序,也无所谓继承关系

方法 throws 异常类型1,异常类型2,异常类型3{代码}

4.4.3 注意-方法覆写

  • 不能比原方法拥有更宽泛的异常 子类覆写的方法,可以不抛出异常

  • 要么和父类方法抛出的异常一样 要么是父类方法抛出异常类的子类 要么不抛出,把异常处理 不能是父类方法抛出异常类的父类

4.5 Finally

4.5.1 是什么

必须执行的语句块,不能单独使用,需要和 try 或者 try...catch... 一起使用
只有一种情况不执行 : System.exit(0) 退出JVM虚拟机

4.5.2 使用

try{// 程序代码
}catch(异常类型1 异常的变量名1){// 程序代码
}catch(异常类型2 异常的变量名2){// 程序代码
}finally{// 程序代码
}

4.5.3 注意事项

  • 不能单独使用

  • 除了关闭虚拟机以外,finally一定会执行

4.5.4应用案例

4.6 自定义异常

4.6.1 定义语法

  1. 创建一个异常类继承一个已有的异常类,─般继承Exception即可
  2. 如果是运行时异常,则继承RuntimeException
  3. 提供无参构造及有参构造
public class 异常类类名 extends Exception{public 异常类类名(){}public 异常类类名(String msg){super(msg)}
}

五.Error

主要描述的是一些系统内部错误,比如我们之前碰到的栈内存溢出 OOM(内存溢出)

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

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

相关文章

前缀和处理数组区间之和问题

1.什么是区间和问题 “区间和问题”通常指的是涉及计算或处理数组或数列某个子区间(即一段连续元素)的总和的类型问题。这类问题可能有多种变体和不同的复杂度,但基本思想都是在给定的区间内快速计算总和或处理与区间和相关的操作。 2.例题…

常见的框架漏洞

ThinkPHP 首先我们打开一个环境 然后进行远程命令执行代码 然后进行远程代码执行 ?sindex/think\app/invokefunction&functioncall_user_func_array&vars[0]phpinfo&vars[1][]-1 在网页中输出phpinfo getshell ?sindex/think\app/invokefunction&function…

c语言基础知识

ASCII码 字符A~Z的ASCII码值从65~90 • 字符a~z的ASCII码值从97~122 • 对应的⼤⼩写字符(a和A)的ASCII码值的差值是32 • 数字字符0~9的ASCII码值从48~57 • 换⾏ \n 的ASCII值是:10 • 在这些字符中ASCII码值从0~31这32个字符是不可打印字符,⽆法打印在…

sql实战cmseasy

环境搭建 这里我们用phpstady搭建 版本是cmseasy5.5 未授权访问 这里ip的方法获取客户端的ip 这里的意思是当你的server ip等于 客户端ip并且get传参 get(ishtml)1的情况下他会直接return 他就不会检查后面是不是admin,而他这个IP是从X_FORWARDED_FOR获取&…

Spring Boot 3.x Rest API统一异常处理最佳实践

上一篇:Spring Boot 3.x Rest API最佳实践之统一响应结构 在Spring MVC应用中,要对web表示层所抛出的异常进行捕获处理有多种方式,具体的可参考著名国外Spring技术实战网站baeldung上的相关话题。Spring Boot对Spring MVC应用中抛出的异常以…

RNN循环网络层

文章目录 1、简介2、RNN 网络原理3、PyTorch RNN 层的使用3.1、RNN送入单个数据3.2、RNN层送入批量数据 4、RNN三个维度4.1、解释4.2、输入数据的组织4.3、示例4.4、为什么需要这种格式?4.5、小结 🍃作者介绍:双非本科大三网络工程专业在读&a…

苹果手机数据被抹除还能恢复吗?这两个方法强烈推荐

苹果手机数据被抹除还能恢复吗?我们在使用苹果手机时,有时由于误操作、系统故障或升级失败等原因,导致手机照片、备忘录、视频、联系人等数据被意外抹除。 面对这类情况,我们应该怎么办?下面牛小编给大家的分享2个方法…

记录使用FlinkSql进行实时工作流开发

使用FlinkSql进行实时工作流开发 引言Flink SQL实战常用的Connector1. MySQL-CDC 连接器配置2. Kafka 连接器配置3. JDBC 连接器配置4. RabbitMQ 连接器配置5. REST Lookup 连接器配置6. HDFS 连接器配置 FlinkSql数据类型1. 基本数据类型2. 字符串数据类型3. 日期和时间数据类…

论文解读,神经网络全梯度表示《Full-Gradient Representation for Neural Network Visualization》

导语 这篇论文介绍了一种新的工具,称为全梯度,用于解释神经网络的响应。这个全梯度的概念将神经网络的响应分解为两个部分:输入灵敏度和每个神经元的灵敏度分量。 输入灵敏度:输入灵敏度指的是对于神经网络输出的影响程度。它反…

Python试讲

Python试讲 导语Python简介Python及其特点如何使用Python Python与计算计算变量 导语 本次试讲内容如下:Python简介与使用,Python与基本运算 辅助教材为 《趣学Python编程》和《Python编程从入门到实践》 Python简介 Python是目前入门最简单最好学的…

NSSCTF练习记录:[SWPUCTF 2021 新生赛]jicao

题目: 这段PHP代码的意思是: 对index.php文件进行语法高亮显示,插入flag.php文件,变量id的值为POST传递的值,变量json的值为GET传递的json类型的值。当id值为wllmNB且json中含有键为“x”,值为“wllm”的时…

数据结构:栈与队列OJ题

目录 前言 一、用栈实现队列 二、用队列实现栈 三、括号匹配问题 前言 前面讲了栈和队列的基础知识,今天来巩固一下加深理解,这里说明一下,因为现在都是在用C语言写,这些OJ题里都要用到前面实现栈和队列的代码,每道题…

告别数据丢失烦恼,转转数据恢复和另外三款工具助你一臂之力!

不知道大伙儿有没有和我一样,到哪都喜欢拍照片和视频,加上办公上也是七七八八的各种格式的文件实在是多,所以电脑和手机等等设备上经常内存爆满需要清理,难免会出现不小心误删或者格式化、清空等等的情况,用过几款和转…

Journyx项目管理软件 soap_cgi.pyc XXE漏洞复现

0x01 产品简介 Journyx-Journyx成立于1996年,提供自托管项目管理解决方案ProjectXecute。主要功能包括资源跟踪、待办事项列表、任务分配以及与MS Project的集成。要运行ProjectXecute,需要Windows 2003或更高版本、IIS Web服务器和Intel处理器。也可以在Linux、Solaris、AI…

#子传父父传子props和emits #封装的table #vue3

#子传父&父传子props和emits #封装的table #vue3 父组件&#xff1a;emits defineEmits props 子组件&#xff1a; 子组件 <template><el-table v-bind"$attrs" ref"innerTableRef" v-loading"loading" border :data"tabl…

力扣刷题-轮转数组

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 首先&#xff0c;我们现在这里提供的是一种特别简单的思路&#xff0c;我们先来看一下这段代码&#xff1a; void rotate(int* nums, int numsSize, int k) {k%numsSize;int n…

git clone private repo

Create personal access token Clone repo $ git clone https://<user_name>:<personal_access_tokens>github.com/<user_name>/<repo_name>.git

5个适用于Linux系统的PDF转Word工具

凭借其跨平台和设备的统一标准、兼容性和规模小巧等主要优点&#xff0c;可携带文档格式&#xff08;PDF&#xff09;可谓最主流的文件格式之一。 市面上有许多查看PDF文件的强大工具&#xff0c;因此所有Linux系统的用户都可以根据自身喜好找到合适的PDF查看工具。然而&#x…

Linux从0到1——基础IO(上)【文件描述符/重定向/缓冲区】

Linux从0到1——基础IO&#xff08;上&#xff09; 1. 预备知识2. 复习一下常见的C语言文件接口3. 系统调用接口3.1 函数传参小技巧——标志位3.2 使用系统调用接口3.2.1 open3.2.2 write3.2.3 read 4. 文件描述符fd4.1 fd的本质4.2 理解struct file结构体4.3 fd的分配规则 5. …

BES(恒玄)平台log分析

前言 恒玄软件调试和分析基本是通过日志形式分析的&#xff0c;今天就详细说下日志组成和常用分析方法 1.日志组成解析 bes日志组成一般说由以下组成&#xff1a;tick时钟 模块log打印所在线程编码log内容 [17:31:22.834] 21786/NONE / 2 | CPU USAGE: busy18 light8…