我正在使用一个相当大的 Cro 应用程序,其中包含数十条路线、模型和其他逻辑。目前每个路由块中都有一个CATCH处理异常的方法。这对维护来说不太友好,更不用说添加它们的工作了。所以,我想知道这是否是更好的方法。主路由块中的一个CATCH处理程序不起作用。异常仅在抛出异常的路由块中捕获。可能是线程问题。是否有一个地方可以实现一个异常处理程序,它可以获取所有异常并可以在不导致应用程序终止的情况下处理它们?
我有一个可能很容易回答 Raku 语法问题。我不会解析日志文件并通过日志条目取回条目日志条目。日志条目可以只是一行或多行字符串。
我的草稿代码如下所示:
grammar Grammar::Entries {
rule TOP { <logentries>+ }
token logentries { <loglevel> <logentry> }
token loglevel { 'DEBUG' | 'WARN' | 'INFO ' | 'ERROR' }
token logentry { .*? <.finish> }
token finish { <.loglevel> || $ }
}
Run Code Online (Sandbox Code Playgroud)
这仅适用于第一行,因为在第二行中日志级别被第一行匹配消耗,尽管我使用了 '.' 在正则表达式 <> 中,据我所知意味着非捕获。
以下是日志示例:
INFO 2020-01-22T11:07:38Z PID[8528] TID[6736]: Current process-name: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
INFO 2020-01-22T11:07:38Z PID[8528] TID[6736]: Session data:
PID: 1234
TID: 1234
Session: 1
INFO 2020-01-22T11:07:38Z PID[8528] TID[6736]: Clean up.
Run Code Online (Sandbox Code Playgroud)
即使对于多行日志条目,恢复日志条目的正确方法是什么?谢谢!