diff --git a/src/main/java/com/snowcattle/game/executor/event/EventBus.java b/src/main/java/com/snowcattle/game/executor/event/EventBus.java index e8c25ec..c24a087 100644 --- a/src/main/java/com/snowcattle/game/executor/event/EventBus.java +++ b/src/main/java/com/snowcattle/game/executor/event/EventBus.java @@ -70,7 +70,12 @@ public void handleEvent() { if(event == null){ break; } - handleSingleEvent(event); + try { + handleSingleEvent(event); + }catch (Exception e){ + Loggers.gameExecutorError.error(e.toString(), e); + } + } } @@ -86,7 +91,12 @@ public int cycle(int maxSize) { if(event == null){ break; } - handleSingleEvent(event); + try { + handleSingleEvent(event); + }catch (Exception e){ + Loggers.gameExecutorError.error(e.toString(), e); + } + i++; if(i > maxSize){ break; @@ -96,7 +106,7 @@ public int cycle(int maxSize) { return i; } - public void handleSingleEvent(IEvent event) { + public void handleSingleEvent(IEvent event) throws Exception{ if(Loggers.gameExecutorUtil.isDebugEnabled()) { EventParam[] eventParams = event.getParams(); diff --git a/src/main/java/com/snowcattle/game/executor/event/common/IEventBus.java b/src/main/java/com/snowcattle/game/executor/event/common/IEventBus.java index d4c2841..44dec26 100644 --- a/src/main/java/com/snowcattle/game/executor/event/common/IEventBus.java +++ b/src/main/java/com/snowcattle/game/executor/event/common/IEventBus.java @@ -12,7 +12,7 @@ public interface IEventBus { public void clearEventListener(); public void addEvent(IEvent event); public void handleEvent(); - public void handleSingleEvent(IEvent event); + public void handleSingleEvent(IEvent event) throws Exception; public void clearEvent(); public void clear(); } diff --git a/src/main/java/com/snowcattle/game/executor/event/service/SingleEventWork.java b/src/main/java/com/snowcattle/game/executor/event/service/SingleEventWork.java index b8cda2b..52f77c5 100644 --- a/src/main/java/com/snowcattle/game/executor/event/service/SingleEventWork.java +++ b/src/main/java/com/snowcattle/game/executor/event/service/SingleEventWork.java @@ -1,5 +1,6 @@ package com.snowcattle.game.executor.event.service; +import com.snowcattle.game.executor.common.utils.Loggers; import com.snowcattle.game.executor.event.EventBus; import com.snowcattle.game.executor.event.SingleEvent; import com.snowcattle.game.thread.worker.AbstractWork; @@ -20,6 +21,11 @@ public SingleEventWork(EventBus eventBus, SingleEvent singleEvent) { @Override public void run() { - eventBus.handleSingleEvent(singleEvent); + try { + eventBus.handleSingleEvent(singleEvent); + }catch (Exception e){ + Loggers.gameExecutorError.error(e.toString(), e); + } + } }