dart-sdk/runtime/vm/exceptions.h
dgrove@google.com 4c0f559d23 Initial checkin.
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15 260f80e4-7a28-3924-810f-c04153c831b5
2011-10-05 05:20:07 +00:00

49 lines
1.2 KiB
C++

// Copyright (c) 2011, 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.
#ifndef VM_EXCEPTIONS_H_
#define VM_EXCEPTIONS_H_
#include "vm/allocation.h"
#include "vm/growable_array.h"
namespace dart {
// Forward declarations.
class Instance;
class Object;
class RawInstance;
class Exceptions : AllStatic {
public:
static void Throw(const Instance& exception);
static void ReThrow(const Instance& exception, const Instance& stacktrace);
enum ExceptionType {
kIndexOutOfRange,
kIllegalArgument,
kNoSuchMethod,
kClosureArgumentMismatch,
kObjectNotClosure,
kBadNumberFormat,
kStackOverflow,
kWrongArgumentCount,
kInternalError,
kNullPointer,
kIllegalJSRegExp,
};
static void ThrowByType(ExceptionType type,
const GrowableArray<const Object*>& arguments);
static RawInstance* Create(ExceptionType type,
const GrowableArray<const Object*>& arguments);
private:
DISALLOW_COPY_AND_ASSIGN(Exceptions);
};
} // namespace dart
#endif // VM_EXCEPTIONS_H_