Skip to content

pablobaxter/frybits-wtf

Repository files navigation

License: MIT

Frybits WTF ಠ_ಠ

Are you tired of JVMs crap? Done with handling some meaningless NullPointerException? Tired of throwing some other lame ass exception because somehow someone got your code in a state it never should have gotten into?

Take a deep breath, and let me introduce the Frybit WTF exception library (exclusively for Kotlin)!

(っ˘▽˘)っ Usage ⊂(◕。◕⊂)

Let's start of with something simple... feel like flipping that desk of yours? Whoa! Wait, no... don't really do it. Let's do it in code instead:

fun someDamnFunction() {
    // Some damn code
    // Suddenly, an error appears out of nowhere!
    throw `┳━┳`
    // Throwable message: "(┛ಠ_ಠ)┛彡┻━┻"
}

Easy, no? Oh... you hate the ASCII stuff? Just calm down there and breath. We can do this instead:

fun someDamnFunction() {
    // Some damn code
    // Suddenly, an error appears out of nowhere!
    throw TheDamnTable
    // Throwable message: "(╯°□°)╯︵ ┻━┻"
}

There, don't you feel better? Let's see what else we can throw, shall we?

fun someDamnFunction() {
    // Some damn code
    // Suddenly, an error appears out of nowhere!
    throw `(╯°□°)╯︵ ┻━┻`() // Throwable message: "FFFFFUUUUUU~~~!"
    
    // You can also do the following if you don't like the default message
    // throw `(╯°□°)╯︵ ┻━┻`("someChoiceWords")
}

Can't find a table? Not a problem, let's just use our words instead!

fun someDamnFunction() {
    // Some damn code
    // Suddenly, an error appears out of nowhere!
    throw SomeChoiceWords() // Throwable message: "( ゚Д゚)<!! FFFFFUUUUUU~~~!"
    
    // You can also do the following if you don't like the default message
    // throw SomeChoiceWords("someChoiceWords") // Throwable message: "( ゚Д゚)<!! someChoiceWords"
}

Sometimes, users like doing things they shouldn't. Let's handle this appropriately:

fun someDamnFunction() {
    // Some damn code
    // Suddenly, a random user breaks stuff!
    throw `(´・_・')` // Throwable message: "(╯°Д°)╯︵/(.□ . \)"
    
    // Again, if ASCII is not your thing...
    throw TheDamnUser // Throwable message: "(╯°Д°)╯︵/(.□ . \)"
}

Maybe you've had it up to here with everything...

fun someDamnFunction() {
    // Some damn code
    // Damnit, it's all gone to hell!
    throw `EVERYTHING!!!` // Throwable message: "┻━┻︵ \(°□°)/ ︵ ┻━┻"
}

Wait a minute? Are you really planning on using this library for real debugging? Well... ok. Let's give you a way to preserve that stack trace... just don't include this in your PR (unless you are really done with other people's crap):

fun someDamnFunction() {
    try {
        // Some damn code
    } catch (e: Exception) {
        // What kind of crap is this?!
        throw becauseOfThisCrap(e) // Just look at the stack trace...
    }
}

Oh no! Are you feeling some regret for your actions? Do you wish you could just catch some of these exceptions appropriately? Don't worry, I have you covered. ◕ ◡ ◕

fun someHappyCode() {
    // Happy little code here
    
    // Let's not regret this decision
    catchWtf {
        someDamnFunction()
    }
}

About

Why throw an exception when you can throw other things?

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages