当前位置: 首页 > 工具软件 > error-prone > 使用案例 >

Error-Prone Patching

王渊
2023-12-01

补丁

建议更换

除了作为常规编译阶段的一部分报告错误之外,Error Prone可以提供建议的替换:

error: [DeadException] Exception created but not thrown
    new RuntimeException();
    ^
    (see http://errorprone.info/bugpattern/DeadException)
  Did you mean 'throw new RuntimeException();'?
1 error

在这里,Error Prone建议通过在代码中添加一个throw关键字来解决这个问题。

当然,您可以手动更改源代码,您也可以使用Error Prone修改源代码伴随使用给出的建议。这对于首次将错误实施强制添加到现有代码库或修复不会中断构建的警告级别问题(如MissingOverrideDefaultCharset时很有用。

如何使用

为了应用建议的修复。您将在编译器调用中添加两个编译器标志:

-XepPatchChecks:MissingOverride,DefaultCharset,DeadException
-XepPatchLocation:/full/path/to/your/source/root

第一个标志确定哪些检查尝试并创建修复。如果check通常不会发出建议的修复(例如:InputStreamSlowMultibyteRead),那么它不会在此处执行任何操作。
第二个标志确定将发出名为error-prone.patch的文件。这将是相对于该source/root的统一的diff补丁文件。您可以直接检查补丁文件,并将其应用于您的源:

cd /full/path/to/your/source/root
patch -p0 -u -i error-prone.patch

注意:此功能是实验性的,可能会更改。如果您对此过程有任何意见,请通过Google Group通知我们

 参考链接: patching

 类似资料: