anchor.diff:        } else {
           throw new Exception("Unknown response from _lockerSocket");
         }
  -    });
  +    }, onError: (e) => throw new LockRequestorPipeException(e.toString()));
     }
   
     static Future<LockRequestor> connect(url, port) =>
       Socket.connect(url, port).then((Socket socket) => new LockRequestor.fromSocket(socket))
  -      .catchError((e,s) => throw new Exception("LockRequestor was unable to connect to url: $url, port: $port, (is Locker running?)"));
  +      .catchError((e,s) => throw new LockRequestorPipeException("LockRequestor was unable to connect to url: $url, port: $port, (is Locker running?)"));
   
     // Obtains lock and returns unique ID for the holder
     Future<String> _getLock(String lockType) {
  
positive.code: import 'dart:io';
  import 'dart:math';
  import 'package:useful/socket_jsonizer.dart';
  
  class LockRequestor {
  
  
negative.code:   LockRequestor(this.url, this.port);
  
    Future init() =>
        runZoned(() =>
          Socket.connect(url, port)
            .then((Socket socket) => _lockerSocket = socket)
            .then((_) => _initListeners()),
        onError: (e) => throw new LockRequestorPipeException(e.toString()));
  
    _initListeners() {
      ss = toJsonStream(_lockerSocket).listen((Map resp) {
  