繁体   English   中英

switch语句后无法访问的代码

[英]Unreachable code after switch statement

public Cursor query(Uri paramUri, String[] paramArrayOfString1, String paramString1,String[] paramArrayOfString2, String paramString2)
  {             
SQLiteQueryBuilder localSQLiteQueryBuilder = new SQLiteQueryBuilder();
    if (paramUri.getPathSegments().size() == 1);
     for (StringBuilder localStringBuilder = null; ; localStringBuilder = new   StringBuilder(100))
      switch (sURIMatcher.match(paramUri))
      {
    case 0:

    case 1:

    case 2:

    case 3:
     default:
      throw new IllegalArgumentException("Unknown URI " + paramUri); 
      }
    localSQLiteQueryBuilder.setTables("category");//unreachable code


    while (true)
    {
      Cursor localCursor = localSQLiteQueryBuilder.query(mOpenHelper.getReadableDatabase(), paramArrayOfString1, paramString1, paramArrayOfString2, null, null, paramString2);
      localCursor.setNotificationUri(contentResolver, paramUri);
      return localCursor;
      localSQLiteQueryBuilder.setTables("shop,category");
      localSQLiteQueryBuilder.appendWhere("shop_category_id=category._id");
      continue;
      localSQLiteQueryBuilder.setTables("shop,category");
      StringBuilder localStringBuilder;
  localStringBuilder.append("shop_category_id=category._id");
      localStringBuilder.append(" AND ");
      localStringBuilder.append("_id");
      localStringBuilder.append('=');
      localStringBuilder.append((String)paramUri.getPathSegments().get(1));
      localSQLiteQueryBuilder.appendWhere(localStringBuilder.toString());
      continue;
     localSQLiteQueryBuilder.setTables("shop,category");
     localSQLiteQueryBuilder.setDistinct(true);
     localStringBuilder.append("shop_category_id=category._id");
     localStringBuilder.append(" AND ");
     localStringBuilder.append("shop_category_id");
     localStringBuilder.append('=');
     localStringBuilder.append((String)paramUri.getPathSegments().get(1));
     localSQLiteQueryBuilder.appendWhere(localStringBuilder.toString());
     paramString2 = "shop._id";
}
}

我在switch语句后遇到了无法到达的代码错误,我不知道如何解决它。我试图删除该行,但是如果我遇到了很多错误。我的代码在上面。有人可以帮我吗?预先。

该代码确实无法访问:

所有情况都是失败的(它们没有break语句,因此匹配后的所有情况都将执行),并以抛出Exceptiondefault情况结束。 这意味着抛出Exception后的代码将永远不会执行。

也许您想做的是这样的:

 switch (sURIMatcher.match(paramUri)){
    case 0:
      // do something
      break;
    case 1:
      // do something
      break;
    case 2:
      // do something
      break;
    case 3:
      // do something
      break;
    default:
      throw new IllegalArgumentException("Unknown URI " + paramUri); 
  }

我想这是由于您的切换错误造成的。您必须使用break;

switch (sURIMatcher.match(paramUri))
  {
case 0:
      //your code
      break;
case 1:
      //your code
      break;
case 2:
       //your code
      break;
case 3:
      //your code
      break;
default:
     //your code
     break;      
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM