异常

在程序执行过程中由于设计或设备原因导致的程序中断的异常现象叫做异常

在try-catch-finally代码块中,finally是一定会执行的部分,如果finally中有return部分,则一定是执行该return而不是try-catch的(所以一般不在finally中return)

finally块可以省略,根据需求决定是否需要finally块

自定义异常

public class ZDYException extends Exception {
public ZDYException() {}
//定义带字符串参数的构造方法表示对此异常的说明描述
public ZDYException(String masage) {
super(masage);
}
} //一个实际案例
public class TestZDYException {
public static void main(String[] args) throws ZDYException {
check("123456");
}
//设计一个方法,完成邮箱格式的初步验证(判断传入的字符串是否包含@符)
//若字符串包含@返回true,否则返回false并抛出自定义异常
public static void check(String email){
if(email.contains("@")) {
System.out.println(true);
}else {
System.out.println(false);
try {
throw new ZDYException("没有@符");
} catch (ZDYException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

枚举

枚举是一个引用类型,枚举就是一个规定了取值范围的变量类型

public enum Season {  //枚举的定义
SPRING("2-5月") {
public void printMessage() { //这里可以重构方法
System.out.println("适合出游");
}
}, SUMMER("5-8月"), AUTUMN("8-11月") {
public void printMessage() {
System.out.println("适合出游");
}
}, WINTER("11-1月"); private String month; private Season(String month) { //私有方法必须私有化
this.month = month;
} public String getMonth() {
return month;
} public void setMonth(String month) {
this.month = month;
} public void printMessage() {
System.out.println("不适宜出游");
}
}

枚举的使用

  • ordinal():获得枚举序数

  • compareTo():枚举比较-序数做差

  • valueOf(Class<T> enumType, String name):[重要]指定要获取的枚举类型和元素,返回一个枚举对象

  • values():静态方法,获取枚举类型中的所有枚举元素,返回一个数组

String str = "春天";
Season season = Season.valueOf(Season.class, str); switch (season) {
case SPRING:
case SUMMER:
case AUTUMN:
case WINTER:
System.out.println("对应的月份是" + season.getMonth());
season.printMessage();
break;
default:
break;
}

Java(异常、枚举)的更多相关文章

  1. Java 异常讲解(转)

    六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗?   1 OutputStreamWrite ...

  2. 一篇不错的讲解Java异常的文章(转载)

    http://www.blogjava.net/freeman1984/archive/2007/09/27/148850.html 六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已 ...

  3. Java异常封装(自己定义错误码和描述,附源码)

    真正工作了才发现,Java里面的异常在真正工作中使用还是十分普遍的.什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误码和异常描述. 下面小宝 ...

  4. Java学习--枚举

    枚举类型enum,地位等同于class,interface 使用enum定义的枚举类型,也是一种变量类型,可用于声明变量 枚举的一些特征 1.它不能有public的构造函数,这样做可以保证客户代码没有 ...

  5. Java异常封装

    转载: Java异常封装 Java里面的异常在真正工作中使用还是十分普遍的.什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己可以定义错误码和异常描述. ...

  6. Java enum枚举类型

    java的枚举类型详解: 简单示例: public enum Color{ RED,BLUE,BLACK,YELLOW,GREEN } 复杂示例(带自定义构造方法与类型) public enum En ...

  7. SpringBoot07 异常枚举、自定义异常、统一的全局异常处理

    1 异常编号和提示信息统一管理 利用枚举来实现异常的统一管理 package cn.xiangxu.springboottest.enums; import lombok.Getter; /** * ...

  8. 一篇不错的讲解Java异常的文章(转载)----感觉很不错,读了以后很有启发

    六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? OutputStreamWriter ou ...

  9. Java异常封装(自定义错误码和描写叙述,附源代码)

    真正工作了才发现.Java里面的异常在真正工作中使用还是十分普遍的. 什么时候该抛出什么异常,这个是必须知道的. 当然真正工作里面主动抛出的异常都是经过分装过的,自己能够定义错误码和异常描写叙述. 以 ...

  10. Java笔记---枚举类和注解

    Java笔记---枚举类和注解 一.枚举类 自定义枚举类 方式一:JDK5.0之前自定义枚举类 class Seasons { //1. 声明Seasons对象的属性 private final St ...

随机推荐

  1. Python的布尔值与空值

    1.Boolean值(布尔值) 一个布尔值只有Ture.False两种值 b1 =True b2 =False print (b1,b2)>>>True False 2.空值(non ...

  2. CKEditor的使用,并实现图片上传

    ckeditor是一款富文本编辑器,类似于论坛帖子下边的回复输入框. 1.先要下载相应js文件,点我下载.根据自己的需求选择插件的丰富程度,下载后解压得到一个文件夹,放到webRoot目录下. 2.在 ...

  3. inner join on (程序测试验证结果。) _学习贴

    inner join on  两张表:机制就是第一张表的每一条数据,都会去和第二章表的每一条数据 依次进行匹配.匹配成功,就会显示出来. (程序测试验证结果.) 数据库连接 1 对 1 create ...

  4. hadoop题目(一)

    一.简要描述如何安装配置一个开源hadoop,只描述即可,列出完整步骤. 答:①创建一个用户和用户组,用来管理hadoop项目:   ②修改确定IP地址:vim /etc/sysconfig/netw ...

  5. day 29 元类

    ---恢复内容开始--- 一.元类的介绍 元类:在python里,一切皆对象.所有自定义的类本身也是元类的对象,即所有自定义的类本质上也是由元类实例化出来的. class关键字创建自定义类的底层的工作 ...

  6. Linux的.pid文件

    PID全称是Process Identification. PID是进程的代号,每个进程有唯一的PID编号.它是进程运行时系统随机分配的,并不代表专门的进程.在运行时PID是不会改变标识符的,但是你终 ...

  7. php优秀框架codeigniter学习系列——CI_Loader类分析

    这是一个加载视图和文件的类. __construct() 设置视图文件的路径,和获取输出缓冲级别. initialize() 该方法只会被CI_Controller调用一次,会调用 $this-> ...

  8. 2019-04-19-day036-协程与进程池

    内容回顾 11:30 码云 :王老师检查作业+定期抽查 注册账号 考试的时间 threading.enumerate(),能够获取到当前正在运行的所有线程对象列表 守护线程 守护线程会等待所有的非守护 ...

  9. 将JPA出参Iterable转为List

    Iterable<Entity> geted = entityDao.findAll();  List<Entity> list = Lists.newArrays();  g ...

  10. python写mapReduce初步

    最近在学了python了,从mapReduce开始 ,话不多说了,直接上代码了哈 map阶段,map.py文件 import sys # 标准输入 # 在终端的话,就需要这样了 cat a.txt | ...