Groovy 正则表达式和异常处理

1.正则表达式

    定义:正则表达式是用于在文本中查找子字符串的模式。 Groovy使用〜“regex”表达式本地支持正则表达式。引号中包含的文本表示用于比较的表达式。

    例子:

         def regex = ~'Groovy'

     正则表达式用到的特殊字符:

 

              1.有两个特殊的位置字符用于表示一行的开始和结束:caret(∧)和美元符号($)。
              2.正则表达式也可以包括量词。加号(+)表示一次或多次,应用于表达式的前一个元素。星号(*)用于表示零个或多个出现。问号(?)表示零或一次。
              3.元字符{和}用于匹配前一个字符的特定数量的实例。
              4.在正则表达式中,句点符号(。)可以表示任何字符。这被描述为通配符。
              5.正则表达式可以包括字符类。一组字符可以作为简单的字符序列,包含在元字符[和]中,如[aeiou]中。
              对于字母或数字范围,可以使用[a-z]或[a-mA-M]中的短划线分隔符。
              字符类的补码由方括号内的前导插入符号表示,如[∧a-z]中所示,并表示除指定的字符以外的所有字符。
              下面给出了正则表达式的一些示例。
                      'Groovy' =~ 'Groovy'
                      'Groovy' =~ 'oo'
                      'Groovy' ==~ 'Groovy'
                      'Groovy' ==~ 'oo'
                      'Groovy' =~ '∧G'
                      'Groovy' =~ 'G$'
                      'Groovy' =~ 'Gro*vy' 'Groovy' =~ 'Gro{2}vy'
 
   2.异常处理
      定义:任何编程语言都需要异常处理来处理运行时错误,从而可以保持应用程序的正常流程。异常通常会破坏应用程序的正常流程,这就是为什么我们需要在我们的应用程序中使用异常处理的原因。
      类别:扩展Throwable类(除了RuntimeException和Error)的类称为检查异常egIOException,SQLException等。检查的异常在编译时检查
      1.常见的运行时异常(也称未经检查的异常):java.io.FileNotFoundException(系统找不到指定文件),(1 / 0)ArithmeticException算术操作异常,NullPointerException(空指针异常),ArrayIndexOutOfBoundsException(数组下标越界)
       2.错误,错误是无法恢复的,会导致程序奔溃,下面是几个例子
            1.OutOfMemoryError(内存溢出) --可以参考java的解决方式:https://blog.csdn.net/z453588/article/details/83743837
            2.VirtualMachineError(虚拟机内部错误)--这个分类很多内存,堆(Stack)都有可能出错,参考:https://blog.csdn.net/javarrr/article/details/86681842
            3.AssertionError  (使用断言时报错)--参考:https://www.cnblogs.com/Hebe-Huang/p/7482188.html
 
       3.结构示意图
       

 

          异常捕捉:

              1.方法使用try和catch关键字的组合捕获异常。 try / catch块放置在可能生成异常的代码周围。

                 例子:
                        try {
                             //Protected code
                         } catch(ExceptionName e1) {
                               //Catch block
                         }
             2.多个捕获块
                try {
                     def arr = new int[3];
                     arr[5] = 5;
                }catch(ArrayIndexOutOfBoundsException ex) {
                       println("Catching the Array out of Bounds exception");
                }catch(Exception ex) {
                          println("Catching the exception");
                }
            3.finally块 
               finally块跟在try块或catch块之后。代码的finally块总是执行,而不管异常的发生。
               例子:
                      try {
                           //Protected code
                      } catch(ExceptionType1 e1) {
                            //Catch block
                      } catch(ExceptionType2 e2) {
                           //Catch block
                      } catch(ExceptionType3 e3) {
                          //Catch block
                      } finally {
                            //The finally block always executes.
                     }
              4.常见的异常方式
                 (1)public String getMessage()
                      返回有关已发生异常的详细消息。此消息在Throwable构造函数中初始化。
                 (2)public Throwable getCause()
                      返回由Throwable对象表示的异常原因。
                  (3)public String toString()
                       返回与getMessage()的结果连接的类的名称。
                  (4)public void printStackTrace()
                       将toString()的结果与堆栈跟踪一起打印到System.err,错误输出流。
                  (5)public StackTraceElement [] getStackTrace()
                       返回包含堆栈跟踪上的每个元素的数组。索引0处的元素表示调用堆栈的顶部,数组中的最后一个元素表示调用堆栈底部的方法。
                  (6)public Throwable fillInStackTrace()
                       使用当前堆栈跟踪填充此Throwable对象的堆栈跟踪,添加到堆栈跟踪中的任何以前的信息。
posted @ 2020-07-31 14:55  小窝蜗  阅读(704)  评论(0编辑  收藏  举报