mirror of
https://github.moeyy.xyz/https://github.com/GeWuYou/forgeboot
synced 2025-10-27 18:58:55 +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 {
|
||||
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.LoggerFactory
|
||||
/**
|
||||
*日志扩展类
|
||||
*
|
||||
* @since 2025-01-02 12:49:13
|
||||
* @author gewuyou
|
||||
*/
|
||||
|
||||
/**
|
||||
* 日志扩展
|
||||
Loading…
x
Reference in New Issue
Block a user