
[ Class com.github.javaparser.ast.stmt.ThrowStmt ]
  superclass: com.github.javaparser.ast.stmt.Statement
  superclass: com.github.javaparser.ast.Node
  superclass: java.lang.Object
  interface: java.lang.Cloneable
  Line 39) setExpr(expr) ==> void
  Line 44) beginLine ==> int
  Line 44) beginColumn ==> int
  Line 44) endLine ==> int
  Line 44) endColumn ==> int
  Line 45) setExpr(expr) ==> void
  Line 49) v.visit(this, arg) ==> R
  Line 53) v.visit(this, arg) ==> void
  Line 57) expr ==> com.github.javaparser.ast.expr.Expression
  Line 61) this.expr = expr ==> com.github.javaparser.ast.expr.Expression
  Line 62) setAsParentNodeOf(this.expr) ==> void
