Java 异常处理与正则表达式详解,实例演练及最佳实践

Java 异常 - Try...Catch

在 Java 代码执行期间,可能会发生各种错误,包括程序员编码错误、用户输入错误以及其他不可预料的状况。

当错误发生时,Java 通常会停止并生成错误消息,这个过程称为抛出异常。

try...catch 语句

try 语句允许您定义一段代码块,并在其中测试是否发生错误。

catch 语句允许您定义一段代码块,当 try 块中发生错误时执行该代码块。

try 和 catch 关键字成对使用,语法如下:

1try { 2 // 要尝试的代码块 3} catch (Exception e) { 4 // 处理错误的代码块 5}

示例:

1public class Main { 2 public static void main(String[] args) { 3 try { 4 int[] myNumbers = {1, 2, 3}; 5 System.out.println(myNumbers[10]); // 数组越界错误 6 } catch (Exception e) { 7 System.out.println("Something went wrong."); 8 } 9 } 10}

输出:

1Something went wrong.

finally 语句

finally 语句允许您在 try...catch 语句之后执行一段代码,无论 try 块中是否发生错误。

示例:

1public class Main { 2 public static void main(String[] args) { 3 try { 4 int[] myNumbers = {1, 2, 3}; 5 System.out.println(myNumbers[10]); // 数组越界错误 6 } catch (Exception e) { 7 System.out.println("Something went wrong."); 8 } finally { 9 System.out.println("The 'try catch' is finished."); 10 } 11 } 12}

输出:

1Something went wrong. 2The 'try catch' is finished.

throw 关键字

throw 关键字允许您创建自定义异常。

throw 关键字通常与异常类型一起使用。Java 中提供了许多异常类型,例如:

  • ArithmeticException
  • FileNotFoundException
  • ArrayIndexOutOfBoundsException
  • SecurityException

示例:

1public class Main { 2 static void checkAge(int age) { 3 if (age < 18) { 4 throw new ArithmeticException("Access denied - You must be at least 18 years old."); 5 } else { 6 System.out.println("Access granted - You are old enough!"); 7 } 8 } 9 10 public static void main(String[] args) { 11 checkAge(15); // 年龄小于 18 岁 12 } 13}

输出:

1Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old. 2 at Main.checkAge(Main.java:4) 3 at Main.main(Main.java:12)
  • try...catch 语句用于处理 Java 代码中的异常。
  • finally 语句用于确保代码在任何情况下都会执行。
  • throw 关键字用于创建自定义异常。

建议:

  • 使用 try...catch 语句来处理可能发生的错误。
  • 使用 finally 语句来释放资源或执行清理操作。
  • 仅在需要时使用 throw 关键字来创建自定义异常。

Java正则表达式

什么是正则表达式?

正则表达式是一系列字符,形成一个搜索模式。当你在文本中搜索数据时,可以使用这个搜索模式描述你要查找的内容。

正则表达式可以是单个字符,也可以是更复杂的模式。

Java没有内置的正则表达式类,但我们可以导入java.util.regex包来使用正则表达式。该包包括以下类:

  • Pattern类 - 定义要在搜索中使用的模式
  • Matcher类 - 用于搜索模式
  • PatternSyntaxException类 - 指示正则表达式模式中的语法错误

示例

查找句子中是否存在单词"hello"的任何出现:

1import java.util.regex.Matcher; 2import java.util.regex.Pattern; 3 4public class Main { 5 public static void main(String[] args) { 6 Pattern pattern = Pattern.compile("hello", Pattern.CASE_INSENSITIVE); 7 Matcher matcher = pattern.matcher("Visit hello!"); 8 boolean matchFound = matcher.find(); 9 if(matchFound) { 10 System.out.println("匹配找到"); 11 } else { 12 System.out.println("未找到匹配"); 13 } 14 } 15}

输出:

1匹配找到

示例解释

在这个例子中,在句子中搜索单词"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,或在单词的结尾找到匹配项,如WORD\b
\uxxxx查找由十六进制数xxxx指定的Unicode字符

量词

量词定义数量:

量词描述
n+匹配包含至少一个n的任何字符串
n*匹配包含零个或多个n的任何字符串
n?匹配包含零个或一个n的任何字符串
n{x}匹配包含X个n的任何字符串的序列
n{x,y}匹配包含X到Y个n的任何字符串的序列
n{x,}匹配包含至少X个n的任何字符串

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏

评论区

加载中...

相关推荐

一篇文章带你了解JavaScript错误处理

大家好,我是前端进阶者。执行JavaScript代码时,可能会发生意想不到的错误。错误可以是程序员编写的编码错误,由于输入错误引起的错误以及其他不可预见的事情。因此,为了处理错误,JavaScript提供了4个关键字。一、JavaScripttry...catch语句try语句允许定义一个代码块,该代码块在执行时将进行错误测试,catch如果try块中

如何优雅的处理异常

Java语言按照错误严重性,从throwale根类衍生出Error和Exception两大派系。本文从异常的定义、处理异常的方式、如何优雅的抛出异常以及处理异常等方面来聊聊如何异常这件事

java异常处理

_1.异常的分类_Error:称为错误,有java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序对其不做处理。Exception:所以异常类的父类,其子类对应了各种各样可能出现的异常,一般需要用户显示的声明或捕获。RuntimeException:一类特殊的异常,如被0除,数组下标超范围等,其产生比较频繁,处理比较麻烦,如果显示

JAVA学习笔记 之 异常

异常的概述代码在运行时期发生的问题就称之为异常。在java中,异常被封装成为了一个类,当程序出现了异常类中的问题时,异常的信息(如位置和原因)就会被抛出。在java中用Exception来描述异常,publicclassExceptionextendsThrowable则是异常的继承体系。 Throwable是所有错误或异常的

Java入门之异常处理

1.异常概念异常指的是程序在执行过程中出现的非正常的情况,导致JVM的非正常停止。在Java中,异常是一个类,产生异常就是创建异常对象并抛出一个异常对象。异常指的并不是语法错误,语法错误,编译不会通过,而是编译通过后,程序执行异常。异常的作用是帮助我们找到程序中的问题。2.异常产生过程解析pub

PlayJava Day020

1.异常Exception补充:①错误(Error)指的是致命性错误,一般无法处理②异常以类的形式封装程序可以处理的异常对应的类是java.lang.Exception及其子类运行时异常对应的类是java.lang.RuntimeException错误异常对应的类是java.lang.Error③异常相关类的继承树:java.la