Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 此错误代表什么以及如何修复它?_Java_Python_Exception_Jython - Fatal编程技术网

Java 此错误代表什么以及如何修复它?

Java 此错误代表什么以及如何修复它?,java,python,exception,jython,Java,Python,Exception,Jython,我是jython/PythonBukkit插件程序员,我遇到了一个奇怪的错误。。我正在尝试用Python重新编码一些已经用Java完成的事情。。。下面是代码的java部分: HashMap<Player, String> channelList = new HashMap<Player, String>(); public void useChannel(Player p, String format, String channel){ if(ch

我是jython/PythonBukkit插件程序员,我遇到了一个奇怪的错误。。我正在尝试用Python重新编码一些已经用Java完成的事情。。。下面是代码的java部分:

    HashMap<Player, String> channelList = new HashMap<Player, String>();
    public void useChannel(Player p, String format, String channel){
    if(channel == "main"){
        Bukkit.broadcastMessage(format);
    } else {
          Player[] online = Bukkit.getOnlinePlayers();
          for(int a = 0; a <= online.length - 1; a++){
              if(channelList.get(online[a]) == channel){
                  online[a].sendMessage("*" + format);
              }
          }
    }
}

@EventHandler
public void onChat(AsyncPlayerChatEvent event){
    event.setCancelled(true);
    String channel = event.getMessage().substring(0, 1);
    String userChannel = "";
    switch(channel){
    case "!": userChannel = "spanish";
    case "?": userChannel = "french";
    case "@": userChannel = "dutch";
    case "$": userChannel = "spanish";
    default: userChannel = "main";     
    }
    useChannel(event.getPlayer(), event.getFormat(), userChannel);
}
总而言之,我试图将上面的java代码“重新编码”到python中,但我得到了一些奇怪的错误

谢谢你的回答!:)


p.S.服务器出现错误后冻结。。。如果您需要更多信息,请留言…

这是我的错误,对不起。我使用了错误的事件


我使用的是AsyncPlayerChatEvent而不是常规的PlayerChatEvent…

onAsyncPlayerChatEvent
中,什么是
value
switch
?@Vlad不管怎样,我刚刚意识到每当我使用该事件时,它都会抛出相同的错误?你知道那个错误是怎么说的吗,因为没有任何痕迹,
PyException
有一个关联的,但我不知道如何使用它。最简单的方法是,您可以将所有内容包装在一个
try
语句中,并在末尾添加一个
Exception,e:print e.message
。@Vlad这样尝试过:但返回相同的错误。如果您想以
e
的身份访问异常,您需要
Exception,e
而不是
Exception
    channelList = HashMap()

    def useChannel(self):
    format = event.player.AsyncPlayerChatEvent.getFormat()    
    if(channel == "main"):
      Bukkit.broadcastMessage(format)
    else:
        online = Bukkit.getOnlinePlayers()
        b = online.lenght - 1
        a = 0
        for a in a <= b:
            if channelList.get(online[a]) == channel:
               online[a].sendMessage("* %s"%format)

def balkanChannel(self):
    userChannel = "balkan"
    return userChannel

def germanChannel(self):
    userChannel = "german"
    return userChannel

@hook.event("player.AsyncPlayerChatEvent", "HIGHEST")
def onAsyncPlayerChatEvent(event):
    event.setCancelled(1)
    channel = event.getMessage().substring(0, 1)
    userChannel = ""  
    try:
       options = {
               '!': pyplugin.balkanChannel,
               '$': pyplugin.germanChannel}
       if value in switch:
          switch[value]() 
       else:
           pass
    except KeyError:
          userChannel = "main"
    pyplugin.useChannel(event.getPlayer(), event.getFormat(), userChannel)
14:38:59 [SEVERE] java.util.logging.ErrorManager: 5
>
Exception: org.python.core.PyException thrown from the UncaughtExceptionHandler
in thread "Connection #1 read thread"