is (the following) discouraged because it's using exceptions for control flow? (is that control flow?)

    try {
        ai = pm.getApplicationInfo(context.getPackageName(), 0);
        return (String) pm.getApplicationLabel(ai);
    } catch (final PackageManager.NameNotFoundException e) {
        return null;
    }