# bobcat-panic
`bobcat-panic` is a custom panic handler with several features supporting Stylus devex:
## `panic-revert`
`panic-revert` will implement a custom panic_handler that will print a stack trace if a
panic takes place. This is useful for development when the codesize isn't prohibitive.
## `panic-loc`
`panic-loc` is similar to its `panic-revert` cousin, except it prints only the filename
and the line of the revert. This could be used in a production situation relatively
safely, since the codesize impact is minimal.
## `panic`
`panic` is a simple panic handler that simply uses the unreachable instruction to revert.
## `msg-on-sdk-err`
bobcat-sdk implements several Solidity-style error messages if the SDK internally fails.
These include overflow, decoding, and more. The SDK can explain where and what went wrong
using `panic-revert` or `panic-loc` if one of the two is enabled and this is enabled as
well.
## What to use?
Use `panic` if you're deploying to production and codesize is an issue. Don't be afraid to
use `panic-loc` in production if you want a location if you have a revert to simplify
development for programmers identifying issues cropping up in practice. `panic-revert` is
useful for a full stack trace and explanation of the revert, and might be better avoided
in practice due to how massive the binaries will become. Though, bobcat-sdk binaries are
very small, so it could be safe to use this in practice.
## How to use?
Opt out of std using `no_std`, and simply import this package with one of the feature
flags set.