1<?php declare(strict_types=1); 2 3namespace PhpParser\Node\Stmt; 4 5use PhpParser\Node; 6use PhpParser\Node\Expr; 7 8class Catch_ extends Node\Stmt { 9 /** @var Node\Name[] Types of exceptions to catch */ 10 public array $types; 11 /** @var Expr\Variable|null Variable for exception */ 12 public ?Expr\Variable $var; 13 /** @var Node\Stmt[] Statements */ 14 public array $stmts; 15 16 /** 17 * Constructs a catch node. 18 * 19 * @param Node\Name[] $types Types of exceptions to catch 20 * @param Expr\Variable|null $var Variable for exception 21 * @param Node\Stmt[] $stmts Statements 22 * @param array<string, mixed> $attributes Additional attributes 23 */ 24 public function __construct( 25 array $types, ?Expr\Variable $var = null, array $stmts = [], array $attributes = [] 26 ) { 27 $this->attributes = $attributes; 28 $this->types = $types; 29 $this->var = $var; 30 $this->stmts = $stmts; 31 } 32 33 public function getSubNodeNames(): array { 34 return ['types', 'var', 'stmts']; 35 } 36 37 public function getType(): string { 38 return 'Stmt_Catch'; 39 } 40} 41