nekoinemo
fun <T : Throwable> shouldThrow(exception: T, block: () -> Unit) { try { block() } catch (e: T) { return } catch (e: Exception) { } throw IllegalStateException() }