首页 > 编程语言 >Java异常

Java异常

时间:2022-08-14 23:34:32浏览次数:95  
标签:Java 错误 抛出 捕获 catch 异常

Java异常

一、error和exception

1、检查性异常
用户错误或问题引起的异常,这是程序员无法预见的,在编译时不能简单忽略

2、运行时异常
可能被程序员避免的异常,可以再编译时被忽略

3、错误
错误不是异常,而是脱离程序员控制的问题,在代码中通常被忽略,例如当栈溢出时,一个错误发生了,再编译中也检查不到。错误是可以被避免的

二、异常体系结构

1、Java把异常当作对象来处理,并定义一个基类java.lang.Throwable作为所有异常的超类
这些异常分为两大类:错误和异常
异常

AWTError指GUI方面的异常

2、NullPointerException:空指针异常
一个对象为空,调用其方法或访问、修改其字段就会产生该错误
主要原因:使用未初始化的变量或对象(虽然变量或对象已经声明);使用了关键字或已存在的类名作变量对象方法或类名

IllegalArgumentException:非法传参异常
比如试图将一个String转换为指定的数字类型,而该字符串确不满足数字类要求格式

ArithmeticException:算术异常
如:一个整数除以0

MissingException:丢失资源

3、error错误是灾难性的致命错误,是无法控制和处理的,由Java虚拟机生成并抛出的,要尽量避免这些错误,否则损失很大
Java虚拟机运行错误,发生异常时,一般会选择线程终止

exception里的RuntimeException(运行的异常),这些异常时不检查异常,程序中选择捕获处理,也可以不处理
这些异常一般是由逻辑错误引起的
exception通常情况下是可以被程序处理的,并且再程序中尽可能的去处理这些异常

三、捕获和抛出异常

1、异常处理机制:抛出异常,捕获异常
异常处理五个关键字:try,catch,finally,throw,throws

2、异常不捕获的话,运行不会停止,异常被捕获后,将不会停止程序
有时候程序报出异常会导致程序无法继续运行,但是你又希望程序运行,就可以再可能出现异常的地方加上try,catch代码块捕获,自己处理,后面代码还是会运行
异常1

2、catch想要捕获的异常类型等级要从低到高,throwable是最高类型
异常2

3、主动抛出异常

参考文章

参考文章

参考文章

参考文章

主动抛出异常

主动抛出异常2

try/catch是遇到错误也能运行,而throw、throws是在运行时给你抛出错误

四、自定义异常

用户自定义异常,只需继承exception类
自定义异常

自定义异常2

出现异常,可以选择就地捕获或者抛出。
自定义myexcption异常后,传递参数11,往下走,抛出异常,catch捕获异常,然后输出e,这个e就是自定义异常中的异常打印消息

标签:Java,错误,抛出,捕获,catch,异常
From: https://www.cnblogs.com/ChenAiNan/p/16586706.html

相关文章

  • Java8新特性学习笔记
    java8JavaNIOjavaNIO(NewIO,Non-BolckingIO)是从java1.4版本引入的一套新的IOAPI,可以替代标准的javaioapi。nio支持面向缓冲区的(io是面向流的)、基于通道的IO操作......
  • JavaScript快速入门-01-环境搭建
    1环境搭建  搭建JavaScript开发环境有很多种组合,本文中采用VisualStudioCode和Node.js的组合,详细如下所示:1.1Node.js环境搭建1.1.1下载Node.js  不管是基......
  • Java方法详解
    Java方法详解一、方法system(类).out(对象).println();(方法)类+对象+方法方法包含于类或者对象中方法是实现某个功能的语句块的集合,一个方法只实现一个功能方法命名规则:首......
  • Java数组
    Java数组一、数组声明创建1、声明数组:数组元素类型数组名[]/[][]数组元素类型[]/[][]数组名为数组分配元素:数组名=new数组元素类型[数组元素个数]2、声明和创......
  • java实现大文件的拆分与合并
    前言我需要把一个大文件上传到网盘上,由于网盘禁止上传大于4G的文件,所以我想通过Java程序来把大文件分割为小文件后,再上传,等需要的时候,通过程序把文件进行合并即可。一、......
  • javaSE的补充
    1instanceOf(1)用于比较两个对象是否相等XinstanceOfY用于比较X,Y是否存在父子关系(2)子类转换为父类,可能为丢失子类自己独自拥有的方法2Static修饰符的补充理解......
  • java12 - 封装+继承+多态
    封装该露的露,该藏的藏我们程序设计要追求“高内聚,低耦合”。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。封装(数据......
  • 4、异常
    一、异常的体系结构:*java.lang.Throwable *        |-----java.lang.Error:一般不编写针对性的代码进行处理。 *        |-----java.lang.Exce......
  • Java特性和优势
    Java特性和优势简单性面向对象可移植性(WriteOnce,RunAnywhere)高性能分布式动态性(反射)多线程安全性(异常机制,捕获异常)健壮性Java的三大版本JavaSE:标准版(桌面......
  • Java一次计算简易计算器
    小白简易计算器第一次尝试写代码publicclassCalculator{publicstaticvoidmain(String[]args){//创建扫描对象Scannerscanner=newS......