在 Java 代码执行期间,可能会发生各种错误,包括程序员编码错误、用户输入错误以及其他不可预料的状况。
当错误发生时,Java 通常会停止并生成错误消息,这个过程称为抛出异常。
try 语句允许您定义一段代码块,并在其中测试是否发生错误。
catch 语句允许您定义一段代码块,当 try 块中发生错误时执行该代码块。
try 和 catch 关键字成对使用,语法如下:
try {
// 要尝试的代码块
} catch (Exception e) {
// 处理错误的代码块
}
示例:
public class Main {
public static void main(String[] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]); // 数组越界错误
} catch (Exception e) {
System.out.println("Something went wrong.");
}
}
}
输出:
Something went wrong.
finally 语句允许您在 try...catch 语句之后执行一段代码,无论 try 块中是否发生错误。
示例:
public class Main {
public static void main(String[] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]); // 数组越界错误
} catch (Exception e) {
System.out.println("Something went wrong.");
} finally {
System.out.println("The 'try catch' is finished.");
}
}
}
输出:
Something went wrong.
The 'try catch' is finished.
throw 关键字允许您创建自定义异常。
throw 关键字通常与异常类型一起使用。Java 中提供了许多异常类型,例如:
示例:
public class Main {
static void checkAge(int age) {
if (age
输出:
Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
at Main.checkAge(Main.java:4)
at Main.main(Main.java:12)
建议:
正则表达式是一系列字符,形成一个搜索模式。当你在文本中搜索数据时,可以使用这个搜索模式描述你要查找的内容。
正则表达式可以是单个字符,也可以是更复杂的模式。
Java没有内置的正则表达式类,但我们可以导入java.util.regex
包来使用正则表达式。该包包括以下类:
查找句子中是否存在单词"hello"的任何出现:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("hello", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Visit hello!");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("匹配找到");
} else {
System.out.println("未找到匹配");
}
}
}
输出:
匹配找到
在这个例子中,在句子中搜索单词"hello"。
Pattern.compile()
方法创建模式。第一个参数指示正在搜索的模式,第二个参数有一个标志,表示搜索应该是不区分大小写的。第二个参数是可选的。matcher()
方法在字符串中搜索模式。它返回一个包含有关所执行搜索的信息的Matcher
对象。find()
方法在字符串中找到模式时返回true,未找到时返回false。compile()
方法中的标志更改搜索的执行方式。以下是其中一些:
Pattern.CASE_INSENSITIVE
- 在执行搜索时将忽略字母的大小写。Pattern.LITERAL
- 在执行搜索时,模式中的特殊字符将不具有任何特殊含义,并且在执行搜索时将被视为普通字符。Pattern.UNICODE_CASE
- 与CASE_INSENSITIVE
标志一起使用,还可以忽略英语字母以外的字母的大小写。Pattern.compile()
方法的第一个参数是模式。它描述了正在搜索的内容。
方括号用于查找一系列字符:
表达式 | 描述 |
---|---|
[abc] | 在方括号之间的选项中找到一个字符 |
[^abc] | 在方括号之间找到一个字符,但不是这些字符 |
[0-9] | 在范围0到9之间找到一个字符 |
元字符是具有特殊含义的字符:
元字符 | 描述 |
---|---|
| | 查找由|分隔的任何模式中的任何一个匹配项,例如:cat|dog|fish |
. | 查找任何字符的一个实例 |
^ | 在字符串的开头找到匹配项,例如:^Hello |
$ | 在字符串的末尾找到匹配项,例如:World$ |
d | 查找数字 |
s | 查找空白字符 |
b | 在单词的开头找到匹配项,如bWORD,或在单词的结尾找到匹配项,如WORDb |
uxxxx | 查找由十六进制数xxxx指定的Unicode字符 |
量词定义数量:
量词 | 描述 |
---|---|
n+ | 匹配包含至少一个n的任何字符串 |
n* | 匹配包含零个或多个n的任何字符串 |
n? | 匹配包含零个或一个n的任何字符串 |
n | 匹配包含X个n的任何字符串的序列 |
n | 匹配包含X到Y个n的任何字符串的序列 |
n | 匹配包含至少X个n的任何字符串 |
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
参与评论
手机查看
返回顶部