Install
$ agentstack add skill-leeovery-agentic-skills-laravel-exceptions ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Laravel Exceptions
Custom exceptions use static factory methods and implement HttpExceptionInterface.
Related guides:
- [Actions](../laravel-actions/SKILL.md) - Throwing exceptions in actions
Structure
uuid} cannot be cancelled in its current state.",
400
);
}
public static function insufficientStock(string $productName): self
{
return new self(
"Insufficient stock for product: {$productName}",
422
);
}
public static function paymentFailed(string $reason): self
{
return new self("Payment failed: {$reason}", 402);
}
}
Httpable Concern
[View full implementation →](references/Httpable.php)
Usage
Throwing Exceptions
// In actions
throw OrderException::notFound($orderId);
throw OrderException::cannotCancelOrder($order);
throw OrderException::insufficientStock($product->name);
With throwunless/throwif
class CancelOrderAction
{
public function __invoke(Order $order): Order
{
throw_unless(
$order->canBeCancelled(),
OrderException::cannotCancelOrder($order)
);
// Continue with cancellation
}
}
Guard Methods
class ProcessOrderAction
{
public function __invoke(Order $order): void
{
$this->guard($order);
// Process order
}
private function guard(Order $order): void
{
throw_unless(
$order->isPending(),
OrderException::cannotProcessOrder($order)
);
throw_unless(
$order->hasItems(),
OrderException::orderHasNoItems($order)
);
}
}
Key Patterns
1. Static Factory Methods
Named constructors for specific exceptions:
public static function notFound(string|int $orderId): self
{
return new self("Order {$orderId} not found.", 404);
}
2. HTTP Status Codes
Pass status as second constructor parameter:
new self("Message", 404); // Not Found
new self("Message", 400); // Bad Request
new self("Message", 422); // Unprocessable Entity
new self("Message", 403); // Forbidden
3. Descriptive Messages
Include context in error messages:
"Order {$order->uuid} cannot be cancelled"
"Insufficient stock for product: {$productName}"
4. HttpExceptionInterface
Implement interface for automatic HTTP error responses:
class OrderException extends Exception implements HttpExceptionInterface
{
use Httpable;
}
Common HTTP Status Codes
400- Bad Request (business rule violation)402- Payment Required403- Forbidden (authorization failed)404- Not Found422- Unprocessable Entity (validation failed)500- Internal Server Error
Directory Structure
app/Exceptions/
├── OrderException.php
├── PaymentException.php
├── UserException.php
└── Concerns/
└── Httpable.php
Summary
Exceptions should:
- Use static factory methods
- Implement
HttpExceptionInterface - Include HTTP status codes
- Have descriptive messages with context
- Be named
{Entity}Exception
Use for business rule violations and error conditions.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: leeovery
- Source: leeovery/agentic-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.