A: 

TypeError will not give you any more information if you catch it.

As far as I know, there is no known way to achieve this (i.e which object threw the Error).

Your best bet will be to set a breakpoint in the beginning of the function and investigate the variables manually. That's what I do, and that works fairly well for me.

LiraNuna
I thought as much - I use TextMate as my code editor so setting breakpoints is a bit fiddly - I was hoping for some other solution
Reuben
+2  A: 

If you check Permit Debugging under Publish Settings in the Flash IDE, it gives you the line number in your code causing the error.

Marco
Ah - getting closer... still can't get the Object, but the line number makes it much easier to find. Do you know if "Permit Debugging" has any consequences for security or performance ?
Reuben
I'm marking this one as correct - it seems to be the closest thing to a solution that's available.
Reuben
It should only be used while you're testing/debugging.
Marco
+1  A: 

The obvious solution is to stop using such generic error-prone code in the first place. You should never use '*' type, and almost never should use 'Object' type.

To catch it at runtime, you could always say:

if(obj == null)
  throw new Error("null obj passed in!!");

if(obj.nonExistentProperty == null)
  throw new Error("obj doesn't have the prop!! the obj was: "+obj);
davr
actually davr, I was asking because I am often called upon to debug code written by other developers... but this is generally good advice.
Reuben