mirror of
				https://github.com/InsanusMokrassar/MicroUtils.git
				synced 2025-11-03 21:51:59 +00:00 
			
		
		
		
	runCatching for safely and safelyWithoutExceptions
This commit is contained in:
		@@ -10,6 +10,7 @@
 | 
			
		||||
    default value
 | 
			
		||||
        * New value `defaultSafelyWithoutExceptionHandlerWithNull` which is used in all `*WithoutExceptions` by default
 | 
			
		||||
    * Analogs of `launch` and `async` for `safely` and `safelyWithoutExceptions` were added
 | 
			
		||||
    * Analogs of `runCatching` for `safely` and `safelyWithoutExceptions` were added
 | 
			
		||||
 | 
			
		||||
## 0.5.2
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -108,6 +108,13 @@ suspend inline fun <T> safely(
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
suspend inline fun <T> runCatchingSafely(
 | 
			
		||||
    noinline onException: ExceptionHandler<T> = defaultSafelyExceptionHandler,
 | 
			
		||||
    noinline block: suspend CoroutineScope.() -> T
 | 
			
		||||
): Result<T> = runCatching {
 | 
			
		||||
    safely(onException, block)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Use this handler in cases you wish to include handling of exceptions by [defaultSafelyWithoutExceptionHandler] and
 | 
			
		||||
 * returning null at one time
 | 
			
		||||
@@ -129,3 +136,10 @@ suspend inline fun <T> safelyWithoutExceptions(
 | 
			
		||||
    noinline onException: ExceptionHandler<T?> = defaultSafelyWithoutExceptionHandlerWithNull,
 | 
			
		||||
    noinline block: suspend CoroutineScope.() -> T
 | 
			
		||||
): T? = safely(onException, block)
 | 
			
		||||
 | 
			
		||||
suspend inline fun <T> runCatchingSafelyWithoutExceptions(
 | 
			
		||||
    noinline onException: ExceptionHandler<T?> = defaultSafelyWithoutExceptionHandlerWithNull,
 | 
			
		||||
    noinline block: suspend CoroutineScope.() -> T
 | 
			
		||||
): Result<T?> = runCatching {
 | 
			
		||||
    safelyWithoutExceptions(onException, block)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user