JavaScript, <strike>103</strike> 101
-

This implementation is based on primo's comprehensive description of the algorithm he used.

    for(x=prompt(e=l=1),g=1e5;--g;y=x>1?1-1/x:x-1,l=y/g+(y<0?-y:y)*l)
        e=1+e/g*x;
    alert([e,(x>0?l:"ERROR")])

Edit: Trying to catch Perl. Stole a byte back from primo. :) Also dropped the unnecessary semi-colon at the end.