# Module core::panicking [−] [src]

Unstable (`core_panic`)

: internal details of the implementation of the `panic!` and related macros

Panic support for libcore

The core library cannot define panicking, but it does declare panicking. This means that the functions inside of libcore are allowed to panic, but to be useful an upstream crate must define panicking for libcore to use. The current interface for panicking is:

fn main() { fn panic_impl(fmt: fmt::Arguments, &(&'static str, u32)) -> !; }

    fn panic_impl(fmt: fmt::Arguments, &(&'static str, u32)) -> !;

This definition allows for panicking with any general message, but it does not allow for failing with a `Box<Any>` value. The reason for this is that libcore is not allowed to allocate.

This module contains a few other panicking functions, but these are just the necessary lang items for the compiler. All panics are funneled through this one function. Currently, the actual symbol is declared in the standard library, but the location of this may change over time.

## Functions

panic | [Unstable]
panic_fmt | [Unstable]

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize` or `* -> vec`)