From 7e154ffb997378da319d4da93b95b162defaff94 Mon Sep 17 00:00:00 2001 From: jiangwenping Date: Thu, 1 Jun 2017 14:20:11 +0800 Subject: [PATCH] =?UTF-8?q?eventbus=E5=A2=9E=E5=8A=A0=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../snowcattle/game/executor/event/EventBus.java | 16 +++++++++++++--- .../game/executor/event/common/IEventBus.java | 2 +- .../executor/event/service/SingleEventWork.java | 8 +++++++- 3 files changed, 21 insertions(+), 5 deletions(-) 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); + } + } }