错误:不可挽回,程序员无法控制的情况;
异常:可避免挽回,程序员可以控制。
只有一个对象是Throwable的对象或子类对象时,才可由jvm或throw语句抛出,由catch捕获。
Throwable是所有错误、异常对象的父类。

异常分为两类
编译期异常/受检异常。除运行异常外皆为。为代码编写时,编译器自动检查出。
运行期异常/非受检异常。只有运行之后才可以检查出。
控制台报错的工作原理:JVM会在出现异常的地方暂停。根据异常的类型,new出一个对象,抛出。若有异常处理程序则立马处理异常程序。如无异常处理程序,JVM会把这个异常所在线程、所属类型异常信息、发生位置通过错误流的形式打印出来。JVM停止运行。
``try-catch-finally处理异常。throws关键字把方法内的异常声明给方法的调用者。

package study;public  class S2{public static int getNum(int div ) {int a=123;int num=100;
try{System.out.println(a/div);
num=200;
return num;//这句代码 内存中找到num时,finally还没执行,找到num后,执行完成前必须去执行finally。
}catch(Exception e) {e.printStackTrace();System.out.println("asd");num=300;return num;
}finally {num=400;System.out.println("num"+num);return num;
}}public static void main(String[] args) {int num=S2.getNum(10);System.out.println(num);}}

输出结果为12 num400 400
若把finally中的return num给删了,就会返回12 num400 200

自定义异常类
用来描述个性场景里的异常
1)系统异常:比如数据库连接问题。程序员编写代码问题。
2)业务异常:用户的不正常操作导致程序无法进行下去。
自定义步骤:1、继承父类。RuntimeException 属于运行期异常 Exception 属于编译期异常
举个例子


```java
package study;public  class AgeException extends Exception{private String ageCode;//年龄的异常编码private  String ageMessage;//年龄的异常信息串public String getAgeCode() {return ageCode;}public void setAgeCode(String ageCode) {this.ageCode = ageCode;}public String getAgeMessage() {return ageMessage;}public void setAgeMessage(String ageMessage) {this.ageMessage = ageMessage;}public AgeException(String ageCode,String ageMessage) {this.ageCode=ageCode;this.ageMessage=ageMessage;}}```![在这里插入图片描述](https://img-blog.csdnimg.cn/20191207232510347.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FsZ3lkeA==,size_16,color_FFFFFF,t_70)
package study;public class Stuent {private int age;//16-26
public int getAget() {return age;
}
public void setAge(int age)throws AgeException {if(age<16) {//抛出一个年龄太小的异常 使用throw关键字主动抛出一个异常throw new AgeException("age19999","年龄太小了!");}else if(age>26){//抛出一个年龄太大的异常throw new AgeException("age1111","年龄太大了!");}this.age=age;
}
}

java浪曦学习日志 异常类相关推荐

  1. JAVA进阶开发之(异常类)

    保姆级别的异常类教学(附代码) 目录 1.什么是异常: 2. java语言中异常以什么形式存在的呢? 3.异常对应的现实生活中是怎样的? 4.异常处理机制 5.异常处理的具体方式 6.运行时异常编写程 ...

  2. 一个编程小白的Java SE学习日志 V——类、对象【极客BOY-米奇】

    文章目录 前言(转载请说明作者!)3.18~3.25编写 观看前自问 面向对象实现过程 面向对象三大特性 封装 继承 多态 如何理解类与对象(实例)的关系? 现实理解 如何理解对象? 现实理解 任务导 ...

  3. 《深入理解JAVA虚拟机》学习日志----一、自动内存管理机制(2.垃圾收集器与内存分配策略)

    二.垃圾收集器与内存分配策略 前言:讨论的区域集中在Java堆和方法区中,而其他几个区域的内存分配和回收都具备确定性,所以不需过多考虑回收 的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了. ...

  4. java代理的学习,通过类实现接口来实现代理。proxy来创建动态类,和InvocationHandler接口的实现,和工作原理。...

    1.java自带的proxy类可以创建动态类,如果一个类实现了一个接口那么久可以为这个类创建代理. 2.代理:就是当用户要调用一个类的方法时,用户可以通过调用代理,代理通过接口调用原来的类的方法,代理 ...

  5. Java大数据学习第六天------面向对象 类 对象 封装

    面向过程: ​ 强调的是过程, 面向对象: ​ 强调的是结果,只需要关注结果就好. 面向对象的三大特征: 封装: 把相关的数据封装成一个"类"组件 继承: 是子类自动共享父类属性和 ...

  6. Java基础知识学习04-自定义类、ArrayList集合

    类与对象 类是一个模子,确定对象将会拥有的特征(属性)和行为(方法). 类的特征:类是对象的类型 具有相同属性和方法的一组对象的集合 类的组成:属性和方法 定义一个类:public class  类名 ...

  7. Java基础_学习笔记_13_类的多态性(二)

    1 class Animal 2 { 3 private String name; 4 Animal(String name) 5 { 6 this.name=name; 7 } 8 public v ...

  8. 毕老师JAVA基础视频 学习日志——Java开发前奏

    1.基础常识 1.1.  软件开发 软件:一系列按照特定顺序组织的计算机数据和指令的集合.分为系统软件和应用软件.         开发:就是制作软件. 1.2.  人机交互 人机交互:就是人与计算机 ...

  9. java并发编程学习juc工具类之Executors

    文章目录 Executors 重要方法 1.newCachedThreadPool 2.newFixedThreadPool 3.newScheduledThreadPool 示例代码 4.newSi ...

  10. 学习日志0820类的继承

    1 什么是继承 继承是一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类/基类/超类 继承的特性:子类可以遗传/重用父类的属性 python中继承的特点: 1 python中一个子类可 ...

最新文章

  1. 百度之星第一题竟然没过
  2. .难忘的大学时光·~~~~~
  3. 用关系型NoSQL回到未来
  4. 阮一峰react demo代码研究的学习笔记 - demo2 debug
  5. 促进新一代人工智能产业发展三年行动计划_工信部新一代人工智能产业创新重点揭榜任务——中国联通智能化网络基础设施及开放平台启动会成功召开...
  6. 如何获取用户当前详细的地理位置
  7. Maven项目配置、检出、运行
  8. POJ-Prime Gap 素数筛选+二分查找
  9. vue 打印出git提交信息_VUE项目构建打包生成Git信息(VERSION和COMMITHASH文件)
  10. unity 陀螺仪控制节点旋转
  11. 如何用范德蒙行列式完成插值
  12. 新加坡全面开放边境,畅游畅游《摘金奇缘》新加坡地标性景点
  13. 129页4万字某智慧能源集团数字化管控平台项目 建设方案
  14. EMC共模干扰与差模干扰是什么?怎么解决?
  15. 海外直播运营账号的网络线路,该如何选择?
  16. cx_Oracle.DatabaseError: ORA-01036: 非法的变量名/编号
  17. 北航计算机专业录取线,北航各专业录取分数线
  18. PTA-520钻石争霸赛题解【c/c++ 完整思路+代码】
  19. c++ 鼠标切换形状
  20. Python——matplotlib中的乱七八糟(一)【注释,图例,tick能见度,移动坐标轴】

热门文章

  1. 【Websocket编程】基于libwebsockets实现客户端数据通信
  2. ipython怎么安装_如何装ipython
  3. 了解CV和RoboMaster视觉组(五)滤波器、观测器和预测方法:维纳滤波器Wiener Filter,LMS
  4. python查成绩_方正教务处自动抢课查成绩(python版)(一)
  5. 对称密钥和非对称密钥
  6. Blender建模与3D打印
  7. java定义一个getsize方法_java.util.zip.ZipEntry.getSize()方法示例
  8. clone git 修改保存路径_SEO优化知识一般需要了解什么代码_学云网
  9. php全量导出,项目中生成器应用,解决量级数据导出excel内存溢出
  10. android 连接电视,手机连接电视方法大全