一行简单的java代码捕获到一个不受支持的DencodingException,我不知道为什么

一行简单的java代码捕获到一个不受支持的DencodingException,我不知道为什么,java,android,exception,Java,Android,Exception,我完全被这件事缠住了。我知道我的代码是正确的。这很简单。我已经尝试过使用.equals和now.length将what与null进行比较,但它一直捕捉到这个异常。有人知道发生了什么事吗 public static void findLocations(String what, String near, String near2, String type) { StringBuilder responseBuilder = new StringBuilder(); try {

我完全被这件事缠住了。我知道我的代码是正确的。这很简单。我已经尝试过使用.equals和now.length将what与null进行比较,但它一直捕捉到这个异常。有人知道发生了什么事吗

public static void findLocations(String what, String near, String near2, String type) {
    StringBuilder responseBuilder = new StringBuilder();
    try {
        URL url;
        String tempURL = "http://.........";

        if (what.length() != 0) { // This line is catching UnsupportedEncodingException
            tempURL += "&category=" + URLEncoder.encode(what, "UTF-8");
        }

        if (near.length() != 0) {


Thread [<1> main] (Suspended)   
LocationSet.findLocations(String, String, String, String) line: 85  
SearchAlgorithm.editNear() line: 322    
SearchAlgorithm.search(String, String) line: 90 
SearchView.onClick(View) line: 281  
Button(View).performClick() line: 2408  
View$PerformClick.run() line: 8816  
ViewRoot(Handler).handleCallback(Message) line: 587 
ViewRoot(Handler).dispatchMessage(Message) line: 92 
Looper.loop() line: 123 
ActivityThread.main(String[]) line: 4627    
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
Method.invoke(Object, Object...) line: 521  
ZygoteInit$MethodAndArgsCaller.run() line: 868  
ZygoteInit.main(String[]) line: 626 
NativeStart.main(String[]) line: not available [native method]  
公共静态字符串编码字符串, 字符串enc 抛出不支持的DencodingException


methode URLENCODER.encodewhat,UTF-8是一行,您可以从中获得异常。

请添加完整代码。另外,它不是捕获异常,而是抛出异常。这行不可能捕获任何异常。我想你的意思是它正在抛出异常。我不认为它可能会被你所指的线抛出。它可能是由URLEncoder.encode调用引发的。我建议您发布异常堆栈跟踪。您能标记哪一行是第85行吗?这就是全部输出吗?我在输出中的任何地方都没有看到UnsupportedEncodingException。我知道我的代码是正确的。如果是这种情况,那么它显然是运行时中的一个bug。引发错误报告。第85行是catch UnsupportedEncodingException ue{}它不应该输入if语句,因为what=您确定它是而不是吗?你试过了吗:什么.修剪.长度?使用调试模式并找出它为什么进入if语句。我正在使用调试器。这很奇怪。它从不进入if语句。what.length返回0,因此不应输入该值。但是,当它执行该行代码时,会抛出UnsupportedEncodingException,如果.length!=0我要退出它,然后再打开它,看看会不会发生什么事情这是一团糟,重新启动它什么也没做。你说的干净是什么意思