写点什么

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

作者:小万哥
  • 2024-03-13
    广东
  • 本文字数:2016 字

    阅读完需:约 7 分钟

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

Java 异常 - Try...Catch

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


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

try...catch 语句

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 语句

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 关键字允许您创建自定义异常。


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


  • ArithmeticException

  • FileNotFoundException

  • ArrayIndexOutOfBoundsException

  • SecurityException


示例:


public class Main {  static void checkAge(int age) {    if (age < 18) {      throw new ArithmeticException("Access denied - You must be at least 18 years old.");    } else {      System.out.println("Access granted - You are old enough!");    }  }
public static void main(String[] args) { checkAge(15); // 年龄小于 18 岁 }}
复制代码


输出:


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)
复制代码


  • try...catch 语句用于处理 Java 代码中的异常。

  • finally 语句用于确保代码在任何情况下都会执行。

  • throw 关键字用于创建自定义异常。


建议:


  • 使用 try...catch 语句来处理可能发生的错误。

  • 使用 finally 语句来释放资源或执行清理操作。

  • 仅在需要时使用 throw 关键字来创建自定义异常。

Java 正则表达式

什么是正则表达式?

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


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


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


  • Pattern 类 - 定义要在搜索中使用的模式

  • Matcher 类 - 用于搜索模式

  • PatternSyntaxException 类 - 指示正则表达式模式中的语法错误

示例

查找句子中是否存在单词"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()方法的第一个参数是模式。它描述了正在搜索的内容。


  • 方括号用于查找一系列字符:


元字符

元字符是具有特殊含义的字符:


量词

量词定义数量:


最后

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


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


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

发布于: 刚刚阅读数: 5
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
Java 异常处理与正则表达式详解,实例演练及最佳实践_Java_小万哥_InfoQ写作社区