mirror of
https://github.moeyy.xyz/https://github.com/GeWuYou/forgeboot
synced 2025-10-28 02:11:07 +08:00
feat(core-extension): Add extension functions for exception handling and enumeration transformations
- Added tryOrNull and tryOrFallBack extension functions for graceful exception handling - A new enumValueOfOrNull extension function is added to safely convert strings to enumerated values - Rename Logger.kt to LoggerExtensions.kt to better reflect its role as a log extension class - Updated build.gradle.kts to change slf4j-api dependencies to compileOnly to reduce runtime dependencies
This commit is contained in:
parent
ab035cce14
commit
48eab9c7db
@ -1,4 +1,4 @@
|
|||||||
dependencies {
|
dependencies {
|
||||||
val libs = rootProject.libs
|
val libs = rootProject.libs
|
||||||
implementation(libs.slf4j.api)
|
compileOnly(libs.slf4j.api)
|
||||||
}
|
}
|
||||||
@ -0,0 +1,11 @@
|
|||||||
|
package com.gewuyou.forgeboot.core.extension
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 尝试将给定的字符串转换为指定枚举类型的枚举值
|
||||||
|
* 如果转换失败或输入字符串为空,则返回null
|
||||||
|
*
|
||||||
|
* @param name 要转换为枚举值的字符串名称,可以为空
|
||||||
|
* @return 成功转换的枚举值,如果失败则返回null
|
||||||
|
*/
|
||||||
|
inline fun <reified T : Enum<T>> enumValueOfOrNull(name: String?): T? =
|
||||||
|
try { enumValueOf<T>(name ?: "") } catch (_: Exception) { null }
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
package com.gewuyou.forgeboot.core.extension
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 尝试执行一段代码块,如果执行过程中抛出异常,则返回null。
|
||||||
|
* 使用inline避免额外的函数调用开销,对于性能敏感的场景特别有用。
|
||||||
|
*
|
||||||
|
* @param block 一个lambda表达式,代表尝试执行的代码块。
|
||||||
|
* @return 成功执行的结果,或者如果执行过程中抛出异常,则返回null。
|
||||||
|
*/
|
||||||
|
inline fun <T> tryOrNull(block: () -> T): T? =
|
||||||
|
try { block() } catch (_: Exception) { null }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 尝试执行一段代码块,如果执行过程中抛出异常,则返回一个预设的备选值。
|
||||||
|
* 同样使用inline关键字,以减少性能开销。
|
||||||
|
*
|
||||||
|
* @param fallBack 备选值,如果代码块执行过程中抛出异常,则返回该值。
|
||||||
|
* @param block 一个lambda表达式,代表尝试执行的代码块。
|
||||||
|
* @return 成功执行的结果,或者如果执行过程中抛出异常,则返回备选值。
|
||||||
|
*/
|
||||||
|
inline fun <T> tryOrFallBack(fallBack: T, block: () -> T): T =
|
||||||
|
try { block() } catch (_: Exception) { fallBack }
|
||||||
@ -2,12 +2,6 @@ package com.gewuyou.forgeboot.core.extension
|
|||||||
|
|
||||||
import org.slf4j.Logger
|
import org.slf4j.Logger
|
||||||
import org.slf4j.LoggerFactory
|
import org.slf4j.LoggerFactory
|
||||||
/**
|
|
||||||
*日志扩展类
|
|
||||||
*
|
|
||||||
* @since 2025-01-02 12:49:13
|
|
||||||
* @author gewuyou
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 日志扩展
|
* 日志扩展
|
||||||
Loading…
x
Reference in New Issue
Block a user