if ステートメントを使用して、インデックスが null を返すかどうかを確認してみました。そうであればスキップしますが、配列インデックスが範囲外の例外を取得し続けます。
...
if(tiles[x+a][y+b] == null){
System.out.println("Would have been an error");
} else if(tiles[x+a][y+b].getType() == type) {
tiles[x+a][y+b].setTile(type);
} else {
System.out.println("Not found");
}
...
主に最初の 2 行が質問の内容です。配列を通過するように取得しようとしていますが、配列インデックスが範囲外の例外を取得するものはすべてスキップします。背景情報がさらに必要な場合は、お知らせください。出来るだけ減らしてみました。