Java捕获异常密码_Java捕获异常的问题

---恢复内容开始---

在Java编译过程中,有时候会出现输入未按照规定输入的情况,此时需要警告用户输入错误,这就会是程序运行过程中出现异常。异常就是可预测但是又没办法消除的一种错误。所以在编写过程中,为了在程序当中不发生这样的错误,就会将容易发生异常的代码用try catch进行处理,或者通过throws将异常向上抛出,由上一级进行接收并处理。

如果发生异常而不去处理,会导致程序中断,也就是程序无法继续运行。

下面来详细的说一下有关异常的一些问题。

一、异常的产生

异常是程序之中导致程序中断的一种指令流,异常一旦出现并且没有进行合理处理的话,那么程序就将中断执行。

例如:

在编写的时候,比如说你想把一个字符串型转换成int型的,如果这样是没问题的。

String s = "1";

int i;

i = Integer.parseInt(s);

这样是不会出现错误的,但是如果你这样写,就会出现错误。

String s = "a";

int i;

i = Integer.parseInt(s);

在编译过程中,编译器不会给你这方面的提示。在开始的时候我已经说过,异常的出现是程序运行到此处的时候才产生的。所以,在编写的时候并不会给你提醒错误,而是在运行的时候才会出现。

ee6b2469437e4e5b88fa2ef146a3db27.png

二、异常的类型

一般来说,异常分为可检测异常和非检测异常。

1、可检测异常

可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则。

2、非检测异常

非检测性异常就是当你运行的时候才会有问题。换句话说就是运行时异常和编译时异常。比如我上面所说的类型的强制转换,在运行过程中,会是程序在运行到此处时中止。

三、出现异常的解决方法

在Java中,对于异常有很多的分类,要想做一个合格的程序员,就必须了解这些异常,并学会解决他们的方法。

常见的异常有:

算术异常类:ArithmeticExecption

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

数组负下标异常:NegativeArrayException

数组下标越界异常:ArrayIndexOutOfBoundsException

违背安全原则异常:SecturityException

文件已结束异常:EOFException

文件未找到异常:FileNotFoundException

字符串转换为数字异常:NumberFormatException

操作数据库异常:SQLException

输入输出异常:IOException

在这里就举这些例子,具体请参考  https://www.cnblogs.com/cvst/p/5822373.html

四、有关自定义异常

自定义异常就是Java本身不包含的异常类型,需要程序员在编写的时候自己去定义。

例如,在写计算三角形面积时,我们需要判断输入的三角形的三个边是否能构成三角形,但是,在实际操作过程中,不能构成三角形的三边仍然能计算出面积,这就是出现异常的一个类型。当然,在处理这个问题的时候我们可以调用Java本身包含的异常进行处理,但是,我们也可以自定义一个异常来进行抛出。

如:

b0560ad220b49b3ea350a8a78c55df9e.png

这是我上面提到的有异常但是不提醒的情况。我们可以根据自定义异常来解决这个问题。

自定义异常:

7d64783d17553ae9452bc147f0556274.png

异常抛出:

86886543e3ed550c06ee1cff451baa57.png

运行结果:

a871f2c2bf13a92775a6d6046c7517ea.png

自定义异常一般这样来定义

class  自定义异常类  extends  异常类型(Exception){

// 因为父类已经把异常信息的操作都完成了,所在子类只要在构造时,将异常信息传递给父类通过super 语句即可。

// 重写 有参 和 无参 构造方法

}

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

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

相关文章

java作业四_Java第四次作业

1.(二次方程式)为二次方程式ax2bxc0设计一个名为QuadraticEquation的类。这类包括:(1)代表三个系数的私有数据域a、b、c(2)一个参数为a、b和c的构造方法(3)a、b、c的三个get方法(4)一个名为getDiscriminant()的方法返回判别式,b2-4ac(5)一个名为getRoot1…

java collectiongroup 类_Java中的collection集合类型总结

java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。java集合工具包位置是java.util.*java集合主要可以划分为4个部分:list列表、set集合、map映射、工具类(iterator迭代器、enumeration枚举类、arrays和…

php 鼠标点击图片放大,css3如何实现鼠标放上图片放大?(附代码)

在css3的学习中,我们会经常做一些小的动画效果,这感觉非常有趣,所以今天的这篇文章将给大家来介绍关于css3实现图片放大的一个效果,有兴趣的小伙伴可以看一下。我们都知道css3中增加了一个transform属性应用于元素的2D或3D转换&am…

脉位调制解调 matlab,通信原理与matlab仿真v2 第五章 DBPSK调制解调器(1)

在毕业设计的相关课程中,已经提及了这个DPSK调制方式。不过如果把它放在理论教学课程中来讲,就需要补充一些基本知识。当然还会给同学们看一下实际在卫星通信中使用的DBPSK程序。之前讲到了BPSK,回顾一下发送滤波器的知识吧。由于信号要在信道…

matlab地址数据类型uns,使用matlab生成sine波mif文件

使用matlab生成sine波mif文件作者:lee神在使用altera 的FPGA中的rom過程中常常會使用到.mif文件或.hex文件。對於初學者,無論mif還是hex都是很令人疑惑的東西,這里就對mif文件的格式及其創建做一點簡單的說明。Mif是memory initialization fi…

OpenAI科学家Hyung Won Chung演讲精华版

文章目录 第一个观点:涌现第二个观点:如何扩大规模1、标记化2、嵌入3、计算4、评估(损失函数)5、反向传播 最近从Google跳槽到OpenAI的AI科学家 Hyung Won Chung 比较拗口,我就简称尚哥了 他最近做了一个技术演讲 …

php如何实现购物时数量增减,1、vuex状态管理--购物车数量增减

GIF.gif1、购物车数量增减-import { mapState,mapMutations} from vuex //引入mapState、mapMutations映射函数export default{computed:{...mapState({changableNum:state > state.headerStatus.changableNum, //用模块headerStatus里的状态 changableNumdisabled:state &g…

oracle中存储过程和函数有什么区别,Oracle中存储过程和函数的区别

Oracle中存储过程和函数的区别存储过程和函数: www.2cto.com例子:[sql]//创建过程create or replace procedure add_emailinfo(namee email_info.fullname%type ,address email_info.email_address%type )isbegininsert into email_info(ful…

oracle 查询结果升序,Oracle学习日志-8(查询结果排序)

要用到的表如下书上写到,上面的查询结果排序是随机的,再执行几次结果可能不同,但是我执行多次后,查询结果的排序都是如此,是因为oracle的默认处理方式是按照物理储存顺序查询的,而我在插入记录的时候都是按…

linux下如何搜索某个文件,技术|如何在 Linux 中查找一个文件

对于新手而言,在 Linux 中使用命令行可能会非常不方便。没有图形界面,很难在不同文件夹间浏览,找到需要的文件。本篇教程中,我会展示如何在 Linux 中查找特定的文件。第一步要做的是find 命令,另外一种是使用 locate 命…

linux 安装系统 逻辑卷,Linux逻辑卷工具lvm的使用教程

创建逻辑卷(LVM)详细方法:STEP 1:首先用fdisk命令建立物理分区,然后将每个分区类型转换为LVM类型,编号为8e,如果是对整个磁盘建立pv的话这步可以忽略。STEP 2:使用pvcreate命令建立pv,也就是物理…

linux下su命令进不去,Linux系统中的切换用户Su命令,教你如何使用su命令,包括注意事项...

在本文中,我们将解释如何使用su命令,su(替换或切换用户的缩写)实用程序允许你使用其他用户的权限运行命令,默认情况下是root用户。使用su是在当前登录会话中切换到管理帐户的最简单方法,当root用户不允许通过ssh或使用GUI显示管理…

linux收回用户执行权限,Linux之文件权限管理命令

一、查看文件属性。1、命令ls -l filename 查看长格式形式查看文件详细属性。ls -l file1 ##查看文件file1的详细属性结果:- |rw-r--r--| 1 |kiosk| kiosk| 0| Jul 21 09:18 | file1[1] [2] [3] [4] [5] [6] [7] [8][1] 文件的类型—##空文件,或者文本d#…

linux服务器操作系统日志都有哪些,Linux操作系统服务器日志管理详解

Linux操作系统服务器日志管理详解Linux操作系统服务器日志管理详解日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有&#…

linux7配置dns服务器,centOS7搭建DNS服务器配置详解

写在前言:DNS服务器中 named-checkconf -z /etc/named.conf 命令用来检查所有与DNS有关的配置文件,若有错误,会直接提示,可以代替相关的所有检查命令。通过yum安装所需的BIND软件,系统光盘中自带了BIND服务的安装文件。…

linux重新安装xrog文件,Linux下重新生成xorg.conf

较新版本的Linux系统都已经没有xorg.conf文件,但是有时候为了对显示做微调或为了支持多屏显示等原因,还需要手工生成一个xorg.c较新版本的Linux系统都已经没有xorg.conf文件,但是有时候为了对显示做微调或为了支持多屏显示等原因,…

linux获取weblogic版本,LINUX查看JDK和Weblogic版本命令

满意答案xjiank2014.05.03采纳率:50% 等级:12已帮助:4893人JDKA、查找目前所使用的linux下所使用的jdk安装后的目录:echo $JAVA_HOME;B、获得目前所使用的linux下所使用的jdk的版本java -version;C、获得…

如何知道linux的ssh秘钥是否匹配,SSH密钥验证

[SSH登录两种方式验证](一):用户名密码验证 说明:1.客户机向服务器发送SSH连接请求2.服务器收到请求,发送一个公钥给客户机3.客户机收到公钥,对输入的用户名密码进行加密返回给服务器4.服务器收到加密信息利用私钥解密对比用户…

linux之父ted演讲视频观后感,ted演讲的观后感3篇

ted演讲的观后感3篇ted演讲的观后感篇一:《这一次是TED演唱,因为演讲真的很恐怖!》观后感 一个天生口吃的女孩,站在TED的讲台上,她要说她的故事,唱她的歌。这令我感触不少。先说一说,看完这场演讲,我脑中闪…

c语言程序设计电加热炉,基于80C52单片机的电加热数字恒温控制系统设计

1 控制方案设计温度场是一个梯度场,温度的上升或下降随时间缓慢变化。电加热炉温度控制过程可以用自然降温、程序升温和恒温保持3个分过程来描述。自然降温:停止加热,环境温度在整个过程中保持不变,受控温度场最终稳定为环境温度。…