summaryrefslogtreecommitdiff
path: root/js/src/Ice/ExUtil.js
blob: c2fc0f0669d8043501170d13327cc9b32cbe404b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
// **********************************************************************
//
// Copyright (c) 2003-2014 ZeroC, Inc. All rights reserved.
//
// This copy of Ice is licensed to you under the terms described in the
// ICE_LICENSE file included in this distribution.
//
// **********************************************************************

(function(global){
    //
    // Exception utilities
    //

    require("Ice/LocalException");
    
    var Ice = global.Ice || {};
    
    //
    // Local aliases.
    //
    var UnexpectedObjectException = Ice.UnexpectedObjectException;
    var MemoryLimitException = Ice.MemoryLimitException;
    var ExUtil = {};
    
    ExUtil.toString = function(ex)
    {
        if(!ex.stack)
        {
            return ex.toString();
        }
        else
        {
            return ex.stack;
        }
    };

    ExUtil.throwUOE = function(expectedType, v)
    {
        var type = v.ice_id();
        throw new UnexpectedObjectException("expected element of type `" + expectedType + "' but received '" +
                                            type, type, expectedType);
    };

    ExUtil.throwMemoryLimitException = function(requested, maximum)
    {
        throw new MemoryLimitException("requested " + requested + " bytes, maximum allowed is " + maximum +
                                        " bytes (see Ice.MessageSizeMax)");
    };

    Ice.ExUtil = ExUtil;
    global.Ice = Ice;
}(typeof (global) === "undefined" ? window : global));