- throw new UserErrorException("Device link uri has invalid format: {}" + e.getMessage());
- } catch (InvalidKeyException e) {
- logger.error("Add device link failed", e);
- throw new UnexpectedErrorException("Add device link failed.");
+ throw new UserErrorException("Device link uri has invalid format: " + e.getMessage());
+ }
+
+ try {
+ var deviceLinkUrl = DeviceLinkUrl.parseDeviceLinkUri(linkUri);
+ m.addDeviceLink(deviceLinkUrl);
+ } catch (IOException e) {
+ logger.error("Add device link failed: {}", e.getMessage());
+ throw new IOErrorException("Add device link failed", e);
+ } catch (InvalidDeviceLinkException e) {
+ logger.info("Invalid device link");
+ throw new UserErrorException("Invalid device link", e);
+ } catch (DeviceLimitExceededException e) {
+ throw new UserErrorException("Account has too many linked devices already", e);
+ } catch (NotPrimaryDeviceException e) {
+ throw new UserErrorException("This command doesn't work on linked devices.");