diff --git a/mirai-core/src/commonMain/kotlin/network/handler/state/SafeStateObserver.kt b/mirai-core/src/commonMain/kotlin/network/handler/state/SafeStateObserver.kt index 655e0165d..99e883982 100644 --- a/mirai-core/src/commonMain/kotlin/network/handler/state/SafeStateObserver.kt +++ b/mirai-core/src/commonMain/kotlin/network/handler/state/SafeStateObserver.kt @@ -1,10 +1,10 @@ /* - * Copyright 2019-2021 Mamoe Technologies and contributors. + * Copyright 2019-2022 Mamoe Technologies and contributors. * - * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. - * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. + * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. + * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. * - * https://github.com/mamoe/mirai/blob/master/LICENSE + * https://github.com/mamoe/mirai/blob/dev/LICENSE */ package net.mamoe.mirai.internal.network.handler.state @@ -31,6 +31,21 @@ internal class SafeStateObserver( return "SafeStateObserver(delegate=$delegate)" } + override fun beforeStateChanged( + networkHandler: NetworkHandlerSupport, + previous: NetworkHandlerSupport.BaseStateImpl, + new: NetworkHandlerSupport.BaseStateImpl + ) { + try { + delegate.beforeStateChanged(networkHandler, previous, new) + } catch (e: Throwable) { + logger.error( + { "Internal error: exception in StateObserver $delegate" }, + ExceptionInStateObserverException(e) + ) + } + } + override fun stateChanged( networkHandler: NetworkHandlerSupport, previous: NetworkHandlerSupport.BaseStateImpl,