- System requirements
- Profiler architecture
- Profiler installation
- Uninstall profiler
- Running the profiler
- Profiler activation
- Welcome screen
- Start profiling
- Profiling overhead
- Snapshots
- Solving performance problems
- CPU profiling
- Thread profiling
- Virtual threads support
- Object allocation profiling
- Memory profiling
- Monitor profiling
- Exception profiling
- Telemetry
- Probes: monitor events of various kinds
- Inspections: automatic recognition of typical problems
- Automatically trigger actions on event
- Automatic deobfuscation
- Summary
- Filters
- Profiler command line
- Export of profiling results to external formats
- Profiler Java API
- Profiler HTTP API
- Settings
- Troubleshooting and FAQ
Exception profiling
Goals of exception profiling
Exceptions in Java can be performance killers, especially when thrown and caught frequently. YourKit Java Profiler captures data on exceptions that have been thrown and provides stack traces and other contextual information. This data allows you to identify exception-related bottlenecks, which can be especially useful for debugging or optimizing error-prone areas of your application.
Exception profiling helps to discover performance issues and logic errors. In most cases, there is no significant overhead of collecting this information. However, it makes sense to disable it in production Java servers in order to ensure minimum profiling overhead.
You can compare exception statistics of two snapshots with the help of File | Compare Snapshot with....
Controlling exception profiling
Profiler UI
When the profiler is connected to the profiled application, the toolbar contains the following exception profiling controls:
Toolbar Button | Description |
![]() ![]() |
Start/Stop exception profiling. |
![]() |
Clear exception profiling results. |
When exception profiling is started, previous results are cleared automatically.
Agent startup options
Exception profiling is enabled by default, but this can be adjusted with the following agent startup options:
-
exceptions=on
enables exception events in the JVM and immediately starts the exception profiling. This is the default mode. -
exceptions=off
enables exception events in the JVM but does not immediately start the exception profiling that can instead be started later in runtime. -
exceptions=disable
fully disables exception events in the JVM to totally eliminate corresponding overhead.
HTTP API
For users requiring remote control or automation within their profiling workflows, YourKit Java Profiler offers control over the exception profiling through HTTP API endpoints. The documentation outlines startExceptionProfiling, stopExceptionProfiling and resetExceptionProfiling methods available for this purpose.
Java API
The YourKit Java Profiler also provides a
Java API
for deep integration with Java applications.
The com.yourkit.api.controller.v2.Controller
includes methods for starting,
stopping, and resetting the exception profiling, similar to the toolbar buttons.
Triggers
Profiler built-in triggers allow to start exception profiling, by timer, on entering particular method, or by other conditions.
Exceptions tab
Exception profiling results can be analyzed from different perspectives:
- as Telemetry charts.
- as an Exception tree - All threads merged, with method exception counts in a single call tree.
- as an Exception tree - By thread, with method exception counts in call trees grouped by individual threads.
- as a Flame graph of thrown exceptions.