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

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

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

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

一、异常的产生

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

例如:

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

String s = "1";

int i;

i = Integer.parseInt(s);

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

String s = "a";

int i;

i = Integer.parseInt(s);

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

二、异常的类型

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

1、可检测异常

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

2、非检测异常

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

三、出现异常的解决方法

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

常见的异常有:

算术异常类:ArithmeticExecption

空指针异常类:NullPointerException

类型强制转换异常:ClassCastException

数组负下标异常:NegativeArrayException

数组下标越界异常:ArrayIndexOutOfBoundsException

违背安全原则异常:SecturityException

文件已结束异常:EOFException

文件未找到异常:FileNotFoundException

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

操作数据库异常:SQLException

输入输出异常:IOException

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

四、有关自定义异常

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

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

如:

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

自定义异常:

异常抛出:

运行结果:

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

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

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

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

}

Java捕获异常密码_Java捕获异常的问题相关推荐

  1. java生成密码_java生成密码生成 | 学步园

    一.根据当前日期生成MD5加密密码 package com.test; import java.security.MessageDigest; import java.text.SimpleDateF ...

  2. java access 密码_java 连接加密Access2007数据库时,不用输入用户名密码也能连上

    java 连接加密Access2007数据库时,不用输入用户名密码也能连上 我用Access2007做了一个加密的数据库,用的是Access本身的功能加密的.双击打开Database2.mdb文件时, ...

  3. java jtextfield 密码_java中的文本输入框JTextField与JTextArea、密码输入框

    文本输入框包括两种,单行文本输入框(JTextField) 和多行文本输入框 (JTextArea).密码输入框则只有一种(JPasswordField).JPasswordField 是 JText ...

  4. java jtextfield 密码_Java Swing实战(三)文本组件JTextField和密码组件JPasswordField

    接下来添加文本组件JTextField和密码组件JPasswordField. /** * @author: lishuai * @date: 2018/11/26 13:51 */ public c ...

  5. Java自定义异常、全局捕获异常、拦截器 实现动态控制登录超时

    Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 参考文章: (1)Java自定义异常.全局捕获异常.拦截器 实现动态控制登录超时 (2)https://www.cnblogs.com/ ...

  6. java post 登陆_java HttpPost 密码登录和提交表单的案例

    记录java HttpPost 密码登录鉴权和提交表单的案例,使用的是httppost而不是HttpURLConnection httpost需要下面的依赖 org.apache.httpcompon ...

  7. 用java的io做一个代码计数器,如何制作Java页面计数器_java

    大庆采油六厂采油工艺研究所 王兵 王波 常常逛WWW的人,一定对许多起始页上的计数器感兴趣.每当你光临某个站点的起始页时,它的计数器就很亲切地告诉你,从某年某月某日开始,你是第几位光临的人.你可能也想 ...

  8. Java 判断密码是否是大小写字母、数字、特殊字符中的至少三种

    Java 判断密码是否是大小写字母.数字.特殊字符中的至少三种public class CheckPassword {//数字public static final String REG_NUMBER ...

  9. java简单密码验证程序

    java简单密码验证程序 package demo01;import java.util.Scanner;/*** java模拟密码验证问题* 从键盘上录入6位密码,验证密码是不是6位,如果不是6位提 ...

最新文章

  1. Android画图学习总结(四)——Animation(上)
  2. 一起搞清楚 Spring Security 中的 UserDetails
  3. Hadoop Writable机制
  4. Python扩展库numpy中where()函数的三种用法
  5. webstore报 ESLint: Expected space or tab after '//' in comment.(spaced-comment)
  6. 大数据如何改变企业的业务
  7. 【bat批处理脚本命令】bat命令接收用户输入的内容(保姆级图文+实现代码)
  8. Linux视频教程—笔记(全)
  9. html怎么快捷复制粘贴,如何快速复制粘贴 最全复制粘贴攻略教程大全
  10. 分享一个好用的图片压缩软件
  11. 深度学习中的迁移学习介绍
  12. Linux下装Matlab2014
  13. 在 sysservers 中找不到服务器,在 sys.servers 中找不到服务器的解决办法,自己解决的...
  14. 基于深度学习下的稳定学习究竟是什么?因果学习?迁移学习?之一
  15. 使用Mx-Yolov3与Maixhub,本地及线上训练K210模型文件
  16. Excel大数据排查重复行内容方法,三步搞定!
  17. 【第11章】网络物理隔离技术原理与应用 (信息安全工程师 -- 软考笔记)
  18. 光影之间,人类向虚拟世界探索史
  19. 为什么说全球疫情的刺激,加快了AI视频智能分析技术的需求?
  20. STM32MP157A驱动开发 | 06 - 使用Linux内核自带的eeprom atmel驱动(AT24C02)

热门文章

  1. 到底要不要报考“通信工程”?
  2. 没错!Python杀死了Excel!
  3. 重磅 | 边缘计算核心技术辨析
  4. 程序员为什么爱穿格子衫和卫衣?
  5. c#类属性和实例属性_Visual C#类和对象的创建方式,定义类,实例化对象,实例讲解...
  6. linux上传下载文件命令rz、sz
  7. Docker Nexus3 maven 私服(搭建篇)
  8. 1分钟 Zookeeper 快速入门_windows环境
  9. 第一篇:服务的注册与发现Eureka(Finchley版本)V2.0_dev
  10. flink开发案例_为什么说 Flink + AI 值得期待?