异常

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

在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. ERROR: Cannot load message class for [speech_control/command]. Are your messages built?

    ubuntu14.04 ROS indigo 问题: 执行查看指定消息的命令,出现下面的错误提示,找不到该消息类型. ~$ rostopic echo /speech/command ERROR: C ...

  2. SpringSecurity简单记录

    在pom.xml中将springsecurity导入后,对于springsecurity会出现三个依赖包:spring-security-web,spring-security-config,spri ...

  3. 关于解决Mac使用docker安装SQL server for Linux 中文乱码问题

    本人是Mac的追随者,无奈本学期数据库课要求使用Microsoft的SQL server.但是Microsoft并没有发布SQL server for Mac ,笔者使用Google搜索后, 发现可以 ...

  4. 更改TestStep的request header和获取TestStep的response header

    更改TestStep的request header for example def userId = "xxxxxxxxxxxxx" def request = context.t ...

  5. 当锚点定位遇上position: fixed

    <!DOCTYPE html><html> <head> <title>当锚点定位遇上position: fixed</title> < ...

  6. 分布式大数据系统离线分析技术解决方案(spark2.x)

    一.sark2.x新型的架构系统

  7. struts2实现文件上传和下载

    在做B/S系统时,通常会涉及到上传文件和下载文件,在没接struts2框架之前,我们都是使用apache下面的commons子项目的FileUpload组件来进行文件的上传,但是那样做的话,代码看起来 ...

  8. c++错误

    run-time check failure #2-stack around the variable 'c' was corrupted错误产生的原因大多是因为程序定义了数组,存在数组越界.解决办法 ...

  9. mysql知识点拾遗梳理

    mysql卸载重装过程: sudo apache2ctl stop sudo apt-get --purge remove mysql-client mysql-server mysql-common ...

  10. Java学习NO.3

    今日学习重点: while循环: 语法:while(条件表达式){ 循环操作 } 条件表达式符合,循环继续执行:否则,退出循环. 循环四要素:循环初始化.循环条件.循环操作.循环变量的改变 do-wh ...