Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: sdk/lib/_internal/pub_generated/lib/src/exceptions.dart

Issue 657673002: Regenerate pub sources. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/pub_generated/lib/src/exceptions.dart
diff --git a/sdk/lib/_internal/pub_generated/lib/src/exceptions.dart b/sdk/lib/_internal/pub_generated/lib/src/exceptions.dart
index f3851a5e948dfa1f14aec16977cb9a5f6c95f040..dd2fb6ca4d1f5ca7cc0687ab81b6fefb362fdbd3 100644
--- a/sdk/lib/_internal/pub_generated/lib/src/exceptions.dart
+++ b/sdk/lib/_internal/pub_generated/lib/src/exceptions.dart
@@ -1,69 +1,129 @@
+// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
library pub.exceptions;
+
import 'dart:io';
import 'dart:isolate';
+
import "package:analyzer/analyzer.dart";
import "package:http/http.dart" as http;
import "package:stack_trace/stack_trace.dart";
import "package:yaml/yaml.dart";
+
import '../../asset/dart/serialize.dart';
+
+/// An exception class for exceptions that are intended to be seen by the user.
+///
+/// These exceptions won't have any debugging information printed when they're
+/// thrown.
class ApplicationException implements Exception {
final String message;
+
ApplicationException(this.message);
+
String toString() => message;
}
+
+/// An exception class for exceptions that are intended to be seen by the user
+/// and are associated with a problem in a file at some path.
class FileException implements ApplicationException {
final String message;
+
+ /// The path to the file that was missing or erroneous.
final String path;
+
FileException(this.message, this.path);
+
String toString() => message;
}
+
+/// A class for exceptions that wrap other exceptions.
class WrappedException extends ApplicationException {
+ /// The underlying exception that [this] is wrapping, if any.
final innerError;
+
+ /// The stack chain for [innerError] if it exists.
final Chain innerChain;
+
WrappedException(String message, this.innerError, [StackTrace innerTrace])
: innerChain = innerTrace == null ? null : new Chain.forTrace(innerTrace),
super(message);
}
+
+/// A class for exceptions that shouldn't be printed at the top level.
+///
+/// This is usually used when an exception has already been printed using
+/// [log.exception].
class SilentException extends WrappedException {
SilentException(innerError, [StackTrace innerTrace])
: super(innerError.toString(), innerError, innerTrace);
}
+
+/// A class for command usage exceptions.
class UsageException extends ApplicationException {
+ /// The command usage information.
String _usage;
- UsageException(String message, this._usage) : super(message);
+
+ UsageException(String message, this._usage)
+ : super(message);
+
String toString() => "$message\n\n$_usage";
}
+
+/// A class for errors in a command's input data.
+///
+/// This corresponds to the [exit_codes.DATA] exit code.
class DataException extends ApplicationException {
- DataException(String message) : super(message);
+ DataException(String message)
+ : super(message);
}
+
+/// An class for exceptions where a package could not be found in a [Source].
+///
+/// The source is responsible for wrapping its internal exceptions in this so
+/// that other code in pub can use this to show a more detailed explanation of
+/// why the package was being requested.
class PackageNotFoundException extends WrappedException {
PackageNotFoundException(String message, [innerError, StackTrace innerTrace])
: super(message, innerError, innerTrace);
}
+
+/// All the names of user-facing exceptions.
final _userFacingExceptions = new Set<String>.from(
- [
- 'ApplicationException',
- 'GitException',
- 'ClientException',
- 'AnalyzerError',
- 'AnalyzerErrorGroup',
- 'IsolateSpawnException',
- 'CertificateException',
- 'FileSystemException',
- 'HandshakeException',
- 'HttpException',
- 'IOException',
- 'ProcessException',
- 'RedirectException',
- 'SignalException',
- 'SocketException',
- 'StdoutException',
- 'TlsException',
- 'WebSocketException']);
+ ['ApplicationException', 'GitException', // This refers to http.ClientException.
+ 'ClientException',
+ // Errors coming from the Dart analyzer are probably caused by syntax errors
+ // in user code, so they're user-facing.
+ 'AnalyzerError',
+ 'AnalyzerErrorGroup',
+ // An error spawning an isolate probably indicates a transformer with an
+ // invalid import.
+ 'IsolateSpawnException', // IOException and subclasses.
+ 'CertificateException',
+ 'FileSystemException',
+ 'HandshakeException',
+ 'HttpException',
+ 'IOException',
+ 'ProcessException',
+ 'RedirectException',
+ 'SignalException',
+ 'SocketException',
+ 'StdoutException',
+ 'TlsException',
+ 'WebSocketException']);
+
+/// Returns whether [error] is a user-facing error object.
+///
+/// This includes both [ApplicationException] and any dart:io errors.
bool isUserFacingException(error) {
if (error is CrossIsolateException) {
return _userFacingExceptions.contains(error.type);
}
+
+ // TODO(nweiz): unify this list with _userFacingExceptions when issue 5897 is
+ // fixed.
return error is ApplicationException ||
error is AnalyzerError ||
error is AnalyzerErrorGroup ||
« no previous file with comments | « sdk/lib/_internal/pub_generated/lib/src/error_group.dart ('k') | sdk/lib/_internal/pub_generated/lib/src/executable.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698