Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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";
}
}

I get unreachable code error after switch statement and I can't figure it out how to solve it.I tried to delete that line but if I do I get a lot of errors.My code is above.Can anyone help me?Thanks in advance.

like image 407
melib Avatar asked Sep 12 '26 11:09

melib


2 Answers

The code is really unreachable:

All the cases are fall-through (they have no break statement, so all cases after a match will execute) and end in the default case which throws an Exception. This means the code after throwing the Exception will never be executed.

Perhaps what you meant to do was rahter sth like this:

 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); 
  }
like image 170
kostja Avatar answered Sep 16 '26 19:09

kostja


I guess it is due to your bad switch...you must use 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;      
 }
like image 43
karan Avatar answered Sep 16 '26 20:09

karan