正则表达式和异常处理

正则表达式

正则表达式是使用特定的符号来描述该字符串的一种方法。即:正则表达式就是一个字符串模板,其本身也是一个字符串。

正则表达式常用的代码

.匹配换行符以外的任意字符
\w可以匹配任意的数字或字母
\d可以匹配任意的数字
\s可以匹配任意的空格
^代表字符串的开始
[\u4e00-\u9fa5]匹配中文
$代表字符串的结束
例子:
^\w{5}$代表匹配的字符串要以数字和字母开始,或者以数字或字母结尾,必须匹配5个
^\w{3}\d{2}$数字或字母开始三位,以数字结尾2位。
^\s{1,3}\d{2}$1-3个空格开始2个数字结尾

正则表达式的量词:
\*表示可以匹配0次或多次
\+表示可以匹配一次或多次
可以匹配0次或者1次
{n}只能匹配n次
{n,}表示至少匹配n次
{n,m}表示至少匹配n次,最多m次。
[ ]表达可以从中间匹配任意的一个内容,也可以匹配多个。
分组:
()包含起来的表达式,就是一个组,这个组可以统一量词

转义词:"\"

异常处理

概念

异常指的是在运行期间出现的错误,程序开始执行,出现了异常过后我们要关注异常的类型、异常出现的行号。
错误是指在程序运行过程中发生的一系列异常事件,如:下标越界、空指针、除数为0等。异常时java提供的用于处理程序错误的一种处理机制。
一旦发生异常时,使用异常处理机制会让程序不会直接中断或影响虚拟机的运行。

分类

1、Error: (错误)jvm生成并抛出,错误一般有虚拟机错误、动态链接失败之类等,程序控制不了,用户也无法控制。jvm的运行问题
2、Exception:用户的错误、程序无法预见的一些问题。所有异常的父类、提供了很多个子类,每个子类都对应着异常情况,一旦出现 Exception 这种异常,需要开发者自己去处理(捕获)。
3、RuntimeException:运行时异常是程序在运行过程中发生的,可以被程序员避免的异常。如果不处理,抛出异常过后提醒开发者要关注此异常。
常见异常:

	ClassNotFoundException
	IOException
	SQLException
	NosuchFieldException
	RuntimmException
		- ClassCastException 类转换异常、
		- NullPointException 
		- UnknowTypeException
		- IndexOutOfBoundException
		- ArtithmeticException  计算异常
执行流程

在方法执行过程中,方法压入到方法栈中,在某一方法中出现了运行时异常,如果没有处理这种异常,后面的内容将无法执行,当把异常抛给了虚拟机,就中断了虚拟机的继续执行。

结构体系


检查异常:编译器要求你必须要处理的异常,不处理程序无法运行。当你代码没有运行的时候,编译器就检查出来的问题
非检查异常:编译器不强制要求处理的异常。虽然可能出现问题,但是不要求你处理。(RuntimeException以及子类的异常)

基本用法

1、捕获异常

// 语法1
try {
	// 运行过程中 可能会出现异常代码
}catch(Exception e) { // 声明父类异常接受异常
	// 当出现异常执行的代码
}
// 语法2 捕获多个异常
try {

}catch() {

}catch() {

}
// 语法3 
try {
}catch {
}finally {  // finally 为异常提供了一个统一的出口,使得程序在跳转到另一个程序之前
			// 能够对程序进行统一的管理
			// 无论try模块的内容是否执行,finally代码都执行一次
			// 通常在finally 里执行的内容是资源的关闭或日志的记录。
}
// 语法4
try {
}finally {
}
声明并抛出异常

在本方法中,如果出现了异常,本方法可以不进行处理,抛给调用者来处理,将异常一层一层的往外抛、在达到虚拟机之前处理好整个程序也不受影响。
throw关键字: 将异常进行抛出 (动作)。
throws关键字: 声明将要抛出何种类型的异常(声明)在方法名后声明。
重写方法时,子类和父类异常问题:
1、父类方法没有抛出异常,而子类重写方法时不能抛出异常。
2、父类抛出异常,子类重写方法可以抛出与父类同样的异常。
3、父类抛出异常,子类方法可以不抛出异常(不推荐)
4、父类抛出一个Exception,可以抛出比exception小的异常,子类异常不能抛出比父类大的异常
5、父类不能抛出比子类小的异常
6、子类异常要么跟父类样,要么是父类异常的子类。

自定义异常

优点:
在团队开发过程中,都是模块、分功能来进行开发,在项目中统一制定自己的异常,对外统一显示内容,有利于团队的统一分工合作。
1、所有的异常都应该是Throwable的子类。
2、写检查性的异常,需要写一个类继承Exception。
3、写运行时异常,需要继承RuntimeException。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值