// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /// Throw a specialized exception for expected situations /// where the tool should exit with a clear message to the user /// and no stack trace unless the --verbose option is specified. /// For example: network errors. Never throwToolExit(String? message, { int? exitCode }) { throw ToolExit(message, exitCode: exitCode); } /// Specialized exception for expected situations /// where the tool should exit with a clear message to the user /// and no stack trace unless the --verbose option is specified. /// For example: network errors. class ToolExit implements Exception { ToolExit(this.message, { this.exitCode }); final String? message; final int? exitCode; @override String toString() => 'Exception: $message'; // TODO(ianh): Really this should say "Error". }