macro_rules! throw {
    ($msg:literal $(,)?) => { ... };
    ($msg:literal $(, $rest:tt)* $(,)?) => { ... };
    ($error:expr $(,)?) => { ... };
    ($(,)?) => { ... };
}