fuelPHPのレスポンスでhtmlとjsonを共存させる方法


fuelPHPは標準機能で拡張子によってレスポンス形式を自由に変えることができますが、URLを固定にしている場合だと小技が必要でした。
例えば、/login/index にアクセスしてきた時はHTMLで返したいけど、/json/news/index にアクセスしてきた時はjsonで返したい場合、レスポンスを返すこと自体は造作もないのですが、エラー時の処理となると困ったことになります。
エラー時に throw HTTPException などとして投げると、jsonで返したいのにindex.phpがキャッチしてhtmlで返してしまうのです。
この問題を解決するためにHTTPExceptionクラスを拡張してクラス判定を行いレスポンスを書き換えている強者がいましたが、現バージョンではなぜか動作しませんでした。。
悩んだ挙げ句、index.phpのそれぞれのcatch分岐にURL判定( /json/ が含まれていたら〜)を追加することで対処しましたが、今回はURLに統一性があったからこそできたことなので、なんだかモヤモヤ。。
もっとこう、スマートなやり方はないものかー。