gpt4 book ai didi

java - 获取 IMethod 捕获的所有异常

转载 作者:行者123 更新时间:2023-12-01 13:47:16 25 4
gpt4 key购买 nike

我目前正在开发一个 Eclipse 插件,用于显示带有表达式流的图形(哪个方法抛出异常以及哪个方法捕获异常)。

问题是:我有一个 IMethod 实例,我想获取它捕获的所有异常(而不是抛出)。我最近可以做到这一点,但只能将 IMethod 的源代码作为字符串进行分析,并查找它是否具有子句“catch(”或“catch (”) 并选取异常名称。

有更好的方法吗?要查找方法捕获哪些异常类型?

最佳答案

您可以使用 ASTParser 来解析 ICompilationUnit。然后可以使用 ASTVisitor 遍历解析结果:

ASTParser parser = ASTParser.newParser(AST.JLS4);
parser.setSource(compilationUnit);

ASTNode node = ASTparser.createAST(progressMonitor);
node.accept(visitor);

子类ASTVisitor以在访问/离开某些节点时收到通知:

public class MyVisitor extends ASTVisitor {
@Override
public boolean visit(MethodDeclaration node) {
// method begin
return true;
}

@Override
public boolean visit(CatchClause catchClause) {
return false;
}

@Override
public void endVisit(MethodDeclaration node) {
// method end
}
}

另请参阅:

关于java - 获取 IMethod 捕获的所有异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20270202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com