Зависит от того, что вы подразумеваете под "этим" (и "более элегантным")
Я не уверен, почему вы считаете, что вам нужен tmp AND myObject, но нет способа избежать появления одного из этих объявлений внеблок try, если вы хотите получить к нему доступ в блоке catch.
Что не так с
Object myObject = null;
try {
myObject = somethingThatCanFail();
} catch (Fail f) {
// do nothing because we can deal with myObject being null just fine
}