activemq-cpp-3.9.5
Throwable.h
Go to the documentation of this file.
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18#ifndef _DECAF_LANG_THROWABLE_H_
19#define _DECAF_LANG_THROWABLE_H_
20
21// Includes
22#include <string>
23#include <vector>
24#include <iostream>
25#include <exception>
26
27#include <decaf/util/Config.h>
28
29namespace decaf{
30namespace lang{
31
44 class DECAF_API Throwable : public std::exception {
45 public:
46
48
49 virtual ~Throwable() throw();
50
57 virtual std::string getMessage() const = 0;
58
68 virtual const std::exception* getCause() const = 0;
69
75 virtual void initCause( const std::exception* cause ) = 0;
76
82 virtual void setMark( const char* file, const int lineNumber ) = 0;
83
90 virtual Throwable* clone() const = 0;
91
97 virtual std::vector< std::pair< std::string, int> > getStackTrace() const = 0;
98
102 virtual void printStackTrace() const = 0;
103
108 virtual void printStackTrace( std::ostream& stream ) const = 0;
109
114 virtual std::string getStackTraceString() const = 0;
115
116 };
117
118}}
119
120#endif /*_DECAF_LANG_THROWABLE_H_*/
virtual std::string getStackTraceString() const =0
Gets the stack trace as one contiguous string.
virtual void setMark(const char *file, const int lineNumber)=0
Adds a file/line number to the stack trace.
virtual void initCause(const std::exception *cause)=0
Initializes the contained cause exception with the one given.
virtual std::vector< std::pair< std::string, int > > getStackTrace() const =0
Provides the stack trace for every point where this exception was caught, marked, and rethrown.
virtual Throwable * clone() const =0
Clones this exception.
virtual void printStackTrace() const =0
Prints the stack trace to std::err.
virtual std::string getMessage() const =0
Gets the cause of the error, if no message was provided to the instance of this interface but a cause...
virtual const std::exception * getCause() const =0
Gets the exception that caused this one to be thrown, this allows for chaining of exceptions in the c...
#define DECAF_API
Definition Config.h:29
Definition ThreadingTypes.h:31
Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements.
Definition AprPool.h:25
Definition ArrayPointer.h:432
#define const
Definition zconf.h:198