Should we guarantee the packet listener invoke not affect each other

And if some listener error like throws exceptions not suppress the other listener to be invoke?

like code in PacketReader:

private class ListenerNotification implements Runnable {     private Packet packet;     public ListenerNotification(Packet packet) {
        this.packet = packet;
    }     public void run() {
        for (ListenerWrapper listenerWrapper : connection.recvListeners.values()) {
            try {
                //This should be surrounded by try block.
                listenerWrapper.notifyListener(packet);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}