ラベル付きbreakと例外の違いもわからなくなってきました…。

( i が常に 0 以上 a.length 未満であるよう気をつけるとして) こんな感じですか?

if( a.length > 0)
{
 i = 0;
 while(a[i] == 探しているもの)
 {
  if(i = a.length - 1)
  {
   見つからなかった時の処理;
   throw 見つからなかった例外;
  }
  ++i;
 }
}

配列ならこれでいいけど foreach を使いたい時はどうすれば…