catch (NotFoundException e) 不适用于我的情况

catch (NotFoundException e) is Not working for my case

我的应用程序一张一张地显示图像,图像名称是 a1、a2、a3...an,我试图在图像数量持续时捕获异常,但它对我不起作用。 这是代码:

imagename = getIntent().getExtras().getString("somekey");

    resId = getResources().getIdentifier(imagename + num, "drawable",
            getPackageName());

    try {
        i10.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                image1.setImageResource(resId);
                num++;
                overridePendingTransition(R.anim.pushin, R.anim.pushout);

            }
        });
    } catch (NotFoundException e){
        e.printStackTrace();
        i10.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getApplicationContext(), Menu.class);
                startActivity(i);
                overridePendingTransition(R.anim.pushinhorizontal,
                        R.anim.pushouthorizontal);

            }
        });
    }

您的 try 块正在处理未获取资源标识符的侦听器的分配

你应该这样做

imagename = getIntent().getExtras().getString("somekey");

i10.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        int resID = 0;
        try{
            resId = getApplicationContext().getResources().getIdentifier(imagename + num, "drawable", getPackageName());
        }catch (NotFoundException e){
            e.printStackTrace();
        }
        if(resId > 0){
            image1.setImageResource(resId);
            num++;
            overridePendingTransition(R.anim.pushin, R.anim.pushout);
        }
        else{
            Intent i = new Intent(getApplicationContext(), Menu.class);
            startActivity(i);
            overridePendingTransition(R.anim.pushinhorizontal,
                    R.anim.pushouthorizontal); 
        }
    }
});