Use when you need to apply functional exception handling best practices in Java — including replacing exception overuse with Optional and VAVR Either types, designing error type hierarchies using sealed classes and enums, implementing monadic error composition pipelines, establishing functional control flow patterns, and reserving exceptions only for truly exceptional system-level failures. Part of the skills-for-java project
77
71%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/143-java-functional-exception-handling/SKILL.mdQuality
Discovery
100%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong, well-crafted description that clearly identifies a specific niche (functional exception handling in Java), lists concrete techniques and tools, and opens with an explicit 'Use when' trigger clause. The description is detailed without being padded, uses third-person voice appropriately, and would be easily distinguishable from other Java or error-handling skills.
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: replacing exception overuse with Optional and VAVR Either types, designing error type hierarchies using sealed classes and enums, implementing monadic error composition pipelines, establishing functional control flow patterns, and reserving exceptions for system-level failures. | 3 / 3 |
Completeness | Clearly answers both 'what' (applying functional exception handling best practices with specific techniques listed) and 'when' (opens with 'Use when you need to apply functional exception handling best practices in Java'), providing explicit trigger guidance. | 3 / 3 |
Trigger Term Quality | Includes strong natural keywords users would say: 'exception handling', 'Optional', 'VAVR Either', 'sealed classes', 'enums', 'monadic error composition', 'functional control flow', 'Java'. These cover the domain well, though some terms like 'error handling' or 'try-catch replacement' could broaden coverage. | 3 / 3 |
Distinctiveness Conflict Risk | Highly distinctive niche combining functional programming paradigms with Java exception handling. The specific mention of VAVR Either, monadic error composition, sealed classes for error hierarchies, and Optional makes this very unlikely to conflict with general Java or general error handling skills. | 3 / 3 |
Total | 12 / 12 Passed |
Implementation
42%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill functions primarily as a pointer to a reference file, with almost no actionable content in the body itself. While the progressive disclosure and constraint/validation steps are reasonable, the complete absence of concrete code examples (good/bad patterns, before/after snippets) makes it very difficult for Claude to act on without reading the reference. The bullet list of topics covered adds little value since it merely describes what the reference contains.
Suggestions
Add at least 2-3 concrete before/after code examples inline (e.g., replacing a try-catch with Optional, or using Either for business logic failures) so the skill is actionable without requiring the reference file for basic cases.
Include a step-by-step workflow for applying functional exception handling to existing code: e.g., 1) Identify exception-based control flow, 2) Classify as business vs system failure, 3) Replace with appropriate type (Optional/Either), 4) Compose with flatMap/map, 5) Validate and verify.
Remove or condense the 'What is covered' bullet list — it reads like a table of contents and doesn't provide actionable guidance. Replace with a brief scope statement and let the examples demonstrate coverage.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The 'What is covered' bullet list is somewhat verbose and reads like a table of contents for the reference file rather than actionable content. The introductory sentence and scope note add moderate padding. However, it's not egregiously verbose — it stays reasonably focused. | 2 / 3 |
Actionability | There are no concrete code examples, no executable commands beyond mvnw validate/verify, and no specific before/after patterns. The skill entirely delegates actionable content to the reference file, providing only abstract descriptions of what patterns to apply. | 1 / 3 |
Workflow Clarity | The constraints section provides a reasonable sequence (validate → apply → verify) with a stop condition on failure, which is good. However, the actual workflow of applying functional exception handling patterns is absent — there's no step-by-step process for how to identify, refactor, and validate individual patterns. The feedback loop is partially present but incomplete. | 2 / 3 |
Progressive Disclosure | The skill provides a clear overview with a well-signaled single-level reference to the detailed guide. The structure is appropriate — overview and constraints in the SKILL.md, detailed examples in the reference file, with a clear link. | 3 / 3 |
Total | 8 / 12 Passed |
Validation
100%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 11 / 11 Passed
Validation for skill structure
No warnings or errors.
9ec21dd
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.