opt
/
cpanel
/
ea-wappspector
/
vendor
/
slevomat
/
coding-standard
/
SlevomatCodingStandard
/
Sniffs
/
Exceptions
➕ New
📤 Upload
✎ Editing:
DeadCatchSniff.php
← Back
<?php declare(strict_types = 1); namespace SlevomatCodingStandard\Sniffs\Exceptions; use PHP_CodeSniffer\Files\File; use PHP_CodeSniffer\Sniffs\Sniff; use SlevomatCodingStandard\Helpers\CatchHelper; use SlevomatCodingStandard\Helpers\TokenHelper; use function in_array; use const T_CATCH; class DeadCatchSniff implements Sniff { public const CODE_CATCH_AFTER_THROWABLE_CATCH = 'CatchAfterThrowableCatch'; /** * @return array<int, (int|string)> */ public function register(): array { return [ T_CATCH, ]; } /** * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint * @param int $catchPointer */ public function process(File $phpcsFile, $catchPointer): void { $tokens = $phpcsFile->getTokens(); $catchToken = $tokens[$catchPointer]; $caughtTypes = CatchHelper::findCaughtTypesInCatch($phpcsFile, $catchToken); if (!in_array('\\Throwable', $caughtTypes, true)) { return; } $nextCatchPointer = TokenHelper::findNextEffective($phpcsFile, $catchToken['scope_closer'] + 1); while ($nextCatchPointer !== null) { $nextCatchToken = $tokens[$nextCatchPointer]; if ($nextCatchToken['code'] !== T_CATCH) { break; } $phpcsFile->addError('Unreachable catch block.', $nextCatchPointer, self::CODE_CATCH_AFTER_THROWABLE_CATCH); $nextCatchPointer = TokenHelper::findNextEffective($phpcsFile, $nextCatchToken['scope_closer'] + 1); } } }
💾 Save Changes
Cancel
📤 Upload File
×
Select File
Upload
Cancel
➕ Create New
×
Type
📄 File
📁 Folder
Name
Create
Cancel
✎ Rename Item
×
Current Name
New Name
Rename
Cancel
🔐 Change Permissions
×
Target File
Permission (e.g., 0755, 0644)
0755
0644
0777
Apply
Cancel