Add ANGLE_NO_EXCEPTIONS macro

This macro allows us to hide angle's usage of try/catch so that we can
properly hide them from compilers that do not support exceptions
properly (such as clang-cl and gcc/clang with -fno-exceptions).

Change-Id: I75f466a5322e5840e007711ea851f444bd6ca299
Reviewed-on: https://chromium-review.googlesource.com/206562
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Tested-by: <ehsan@mozilla.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index de3ede5..d58d171 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -40,7 +40,7 @@
 {
     EVENT("(GLenum texture = 0x%X)", texture);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -54,7 +54,7 @@
             context->setActiveSampler(texture - GL_TEXTURE0);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -64,7 +64,7 @@
 {
     EVENT("(GLuint program = %d, GLuint shader = %d)", program, shader);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -103,7 +103,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -113,7 +113,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLuint %d)", target, id);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -127,7 +127,7 @@
             context->beginQuery(target, id);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -137,7 +137,7 @@
 {
     EVENT("(GLuint program = %d, GLuint index = %d, const GLchar* name = 0x%0.8p)", program, index, name);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -170,7 +170,7 @@
             programObject->bindAttributeLocation(index, name);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -180,7 +180,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLuint buffer = %d)", target, buffer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -222,7 +222,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -232,7 +232,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLuint framebuffer = %d)", target, framebuffer);
 
-    try
+    ANGLE_TRY
     {
         if (!gl::ValidFramebufferTarget(target))
         {
@@ -254,7 +254,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -264,7 +264,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLuint renderbuffer = %d)", target, renderbuffer);
 
-    try
+    ANGLE_TRY
     {
         if (target != GL_RENDERBUFFER)
         {
@@ -278,7 +278,7 @@
             context->bindRenderbuffer(renderbuffer);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -288,7 +288,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLuint texture = %d)", target, texture);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -328,7 +328,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -339,7 +339,7 @@
     EVENT("(GLclampf red = %f, GLclampf green = %f, GLclampf blue = %f, GLclampf alpha = %f)",
           red, green, blue, alpha);
 
-    try
+    ANGLE_TRY
     {
         gl::Context* context = gl::getNonLostContext();
 
@@ -348,7 +348,7 @@
             context->setBlendColor(gl::clamp01(red), gl::clamp01(green), gl::clamp01(blue), gl::clamp01(alpha));
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -363,7 +363,7 @@
 {
     EVENT("(GLenum modeRGB = 0x%X, GLenum modeAlpha = 0x%X)", modeRGB, modeAlpha);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -398,7 +398,7 @@
             context->setBlendEquation(modeRGB, modeAlpha);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -414,7 +414,7 @@
     EVENT("(GLenum srcRGB = 0x%X, GLenum dstRGB = 0x%X, GLenum srcAlpha = 0x%X, GLenum dstAlpha = 0x%X)",
           srcRGB, dstRGB, srcAlpha, dstAlpha);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -537,7 +537,7 @@
             context->setBlendFactors(srcRGB, dstRGB, srcAlpha, dstAlpha);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -548,7 +548,7 @@
     EVENT("(GLenum target = 0x%X, GLsizeiptr size = %d, const GLvoid* data = 0x%0.8p, GLenum usage = %d)",
           target, size, data, usage);
 
-    try
+    ANGLE_TRY
     {
         if (size < 0)
         {
@@ -597,7 +597,7 @@
             buffer->bufferData(data, size, usage);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -608,7 +608,7 @@
     EVENT("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr size = %d, const GLvoid* data = 0x%0.8p)",
           target, offset, size, data);
 
-    try
+    ANGLE_TRY
     {
         if (size < 0 || offset < 0)
         {
@@ -655,7 +655,7 @@
             buffer->bufferSubData(data, size, offset);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -665,7 +665,7 @@
 {
     EVENT("(GLenum target = 0x%X)", target);
 
-    try
+    ANGLE_TRY
     {
         if (!gl::ValidFramebufferTarget(target))
         {
@@ -681,7 +681,7 @@
             return framebuffer->completeness();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, 0);
     }
@@ -693,7 +693,7 @@
 {
     EVENT("(GLbitfield mask = 0x%X)", mask);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -714,7 +714,7 @@
             context->clear(mask);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -725,7 +725,7 @@
     EVENT("(GLclampf red = %f, GLclampf green = %f, GLclampf blue = %f, GLclampf alpha = %f)",
           red, green, blue, alpha);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -734,7 +734,7 @@
             context->setClearColor(red, green, blue, alpha);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -744,7 +744,7 @@
 {
     EVENT("(GLclampf depth = %f)", depth);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -753,7 +753,7 @@
             context->setClearDepth(depth);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -763,7 +763,7 @@
 {
     EVENT("(GLint s = %d)", s);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -772,7 +772,7 @@
             context->setClearStencil(s);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -783,7 +783,7 @@
     EVENT("(GLboolean red = %d, GLboolean green = %u, GLboolean blue = %u, GLboolean alpha = %u)",
           red, green, blue, alpha);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -792,7 +792,7 @@
             context->setColorMask(red == GL_TRUE, green == GL_TRUE, blue == GL_TRUE, alpha == GL_TRUE);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -802,7 +802,7 @@
 {
     EVENT("(GLuint shader = %d)", shader);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -825,7 +825,7 @@
             shaderObject->compile();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -838,7 +838,7 @@
           "GLsizei height = %d, GLint border = %d, GLsizei imageSize = %d, const GLvoid* data = 0x%0.8p)",
           target, level, internalformat, width, height, border, imageSize, data);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -889,7 +889,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -903,7 +903,7 @@
           "GLsizei imageSize = %d, const GLvoid* data = 0x%0.8p)",
           target, level, xoffset, yoffset, width, height, format, imageSize, data);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -954,7 +954,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -966,7 +966,7 @@
           "GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d, GLint border = %d)",
           target, level, internalformat, x, y, width, height, border);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1014,7 +1014,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1026,7 +1026,7 @@
           "GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
           target, level, xoffset, yoffset, x, y, width, height);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1075,7 +1075,7 @@
         }
     }
 
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1085,7 +1085,7 @@
 {
     EVENT("()");
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1094,7 +1094,7 @@
             return context->createProgram();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, 0);
     }
@@ -1106,7 +1106,7 @@
 {
     EVENT("(GLenum type = 0x%X)", type);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1122,7 +1122,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, 0);
     }
@@ -1134,7 +1134,7 @@
 {
     EVENT("(GLenum mode = 0x%X)", mode);
 
-    try
+    ANGLE_TRY
     {
         switch (mode)
         {
@@ -1154,7 +1154,7 @@
             return gl::error(GL_INVALID_ENUM);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1164,7 +1164,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint* buffers = 0x%0.8p)", n, buffers);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -1181,7 +1181,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1191,7 +1191,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint* fences = 0x%0.8p)", n, fences);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -1208,7 +1208,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1218,7 +1218,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint* framebuffers = 0x%0.8p)", n, framebuffers);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -1238,7 +1238,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1248,7 +1248,7 @@
 {
     EVENT("(GLuint program = %d)", program);
 
-    try
+    ANGLE_TRY
     {
         if (program == 0)
         {
@@ -1274,7 +1274,7 @@
             context->deleteProgram(program);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1284,7 +1284,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint *ids = 0x%0.8p)", n, ids);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -1301,7 +1301,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1311,7 +1311,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint* renderbuffers = 0x%0.8p)", n, renderbuffers);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -1328,7 +1328,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1338,7 +1338,7 @@
 {
     EVENT("(GLuint shader = %d)", shader);
 
-    try
+    ANGLE_TRY
     {
         if (shader == 0)
         {
@@ -1364,7 +1364,7 @@
             context->deleteShader(shader);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1374,7 +1374,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint* textures = 0x%0.8p)", n, textures);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -1394,7 +1394,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1404,7 +1404,7 @@
 {
     EVENT("(GLenum func = 0x%X)", func);
 
-    try
+    ANGLE_TRY
     {
         switch (func)
         {
@@ -1428,7 +1428,7 @@
             context->setDepthFunc(func);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1438,7 +1438,7 @@
 {
     EVENT("(GLboolean flag = %u)", flag);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1447,7 +1447,7 @@
             context->setDepthMask(flag != GL_FALSE);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1457,7 +1457,7 @@
 {
     EVENT("(GLclampf zNear = %f, GLclampf zFar = %f)", zNear, zFar);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1466,7 +1466,7 @@
             context->setDepthRange(zNear, zFar);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1476,7 +1476,7 @@
 {
     EVENT("(GLuint program = %d, GLuint shader = %d)", program, shader);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1519,7 +1519,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1529,7 +1529,7 @@
 {
     EVENT("(GLenum cap = 0x%X)", cap);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1543,7 +1543,7 @@
             context->setCap(cap, false);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1553,7 +1553,7 @@
 {
     EVENT("(GLuint index = %d)", index);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -1567,7 +1567,7 @@
             context->setEnableVertexAttribArray(index, false);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1577,7 +1577,7 @@
 {
     EVENT("(GLenum mode = 0x%X, GLint first = %d, GLsizei count = %d)", mode, first, count);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1591,7 +1591,7 @@
             context->drawArrays(mode, first, count, 0);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1601,7 +1601,7 @@
 {
     EVENT("(GLenum mode = 0x%X, GLint first = %d, GLsizei count = %d, GLsizei primcount = %d)", mode, first, count, primcount);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1615,7 +1615,7 @@
             context->drawArrays(mode, first, count, primcount);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1626,7 +1626,7 @@
     EVENT("(GLenum mode = 0x%X, GLsizei count = %d, GLenum type = 0x%X, const GLvoid* indices = 0x%0.8p)",
           mode, count, type, indices);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1640,7 +1640,7 @@
             context->drawElements(mode, count, type, indices, 0);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1651,7 +1651,7 @@
     EVENT("(GLenum mode = 0x%X, GLsizei count = %d, GLenum type = 0x%X, const GLvoid* indices = 0x%0.8p, GLsizei primcount = %d)",
           mode, count, type, indices, primcount);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1665,7 +1665,7 @@
             context->drawElements(mode, count, type, indices, primcount);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1675,7 +1675,7 @@
 {
     EVENT("(GLenum cap = 0x%X)", cap);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1689,7 +1689,7 @@
             context->setCap(cap, true);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1699,7 +1699,7 @@
 {
     EVENT("(GLuint index = %d)", index);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -1713,7 +1713,7 @@
             context->setEnableVertexAttribArray(index, true);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1723,7 +1723,7 @@
 {
     EVENT("GLenum target = 0x%X)", target);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1737,7 +1737,7 @@
             context->endQuery(target);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1747,7 +1747,7 @@
 {
     EVENT("(GLuint fence = %d)", fence);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1768,7 +1768,7 @@
             fenceObject->finishFence();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1778,7 +1778,7 @@
 {
     EVENT("()");
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1787,7 +1787,7 @@
             context->sync(true);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1797,7 +1797,7 @@
 {
     EVENT("()");
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -1806,7 +1806,7 @@
             context->sync(false);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1817,7 +1817,7 @@
     EVENT("(GLenum target = 0x%X, GLenum attachment = 0x%X, GLenum renderbuffertarget = 0x%X, "
           "GLuint renderbuffer = %d)", target, attachment, renderbuffertarget, renderbuffer);
 
-    try
+    ANGLE_TRY
     {
         if (!gl::ValidFramebufferTarget(target) || (renderbuffertarget != GL_RENDERBUFFER && renderbuffer != 0))
         {
@@ -1861,7 +1861,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1872,7 +1872,7 @@
     EVENT("(GLenum target = 0x%X, GLenum attachment = 0x%X, GLenum textarget = 0x%X, "
           "GLuint texture = %d, GLint level = %d)", target, attachment, textarget, texture, level);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
         if (context)
@@ -1912,7 +1912,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1922,7 +1922,7 @@
 {
     EVENT("(GLenum mode = 0x%X)", mode);
 
-    try
+    ANGLE_TRY
     {
         switch (mode)
         {
@@ -1941,7 +1941,7 @@
             return gl::error(GL_INVALID_ENUM);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1951,7 +1951,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* buffers = 0x%0.8p)", n, buffers);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -1968,7 +1968,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -1978,7 +1978,7 @@
 {
     EVENT("(GLenum target = 0x%X)", target);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2043,7 +2043,7 @@
             texture->generateMipmaps();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2053,7 +2053,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* fences = 0x%0.8p)", n, fences);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -2070,7 +2070,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2080,7 +2080,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* framebuffers = 0x%0.8p)", n, framebuffers);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -2097,7 +2097,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2107,7 +2107,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* ids = 0x%0.8p)", n, ids);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2124,7 +2124,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2134,7 +2134,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* renderbuffers = 0x%0.8p)", n, renderbuffers);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -2151,7 +2151,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2161,7 +2161,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* textures = 0x%0.8p)", n, textures);
 
-    try
+    ANGLE_TRY
     {
         if (n < 0)
         {
@@ -2178,7 +2178,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2190,7 +2190,7 @@
           "GLint *size = 0x%0.8p, GLenum *type = %0.8p, GLchar *name = %0.8p)",
           program, index, bufsize, length, size, type, name);
 
-    try
+    ANGLE_TRY
     {
         if (bufsize < 0)
         {
@@ -2223,7 +2223,7 @@
             programObject->getActiveAttribute(index, bufsize, length, size, type, name);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2235,7 +2235,7 @@
           "GLsizei* length = 0x%0.8p, GLint* size = 0x%0.8p, GLenum* type = 0x%0.8p, GLchar* name = 0x%0.8p)",
           program, index, bufsize, length, size, type, name);
 
-    try
+    ANGLE_TRY
     {
         if (bufsize < 0)
         {
@@ -2268,7 +2268,7 @@
             programObject->getActiveUniform(index, bufsize, length, size, type, name);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2279,7 +2279,7 @@
     EVENT("(GLuint program = %d, GLsizei maxcount = %d, GLsizei* count = 0x%0.8p, GLuint* shaders = 0x%0.8p)",
           program, maxcount, count, shaders);
 
-    try
+    ANGLE_TRY
     {
         if (maxcount < 0)
         {
@@ -2307,7 +2307,7 @@
             return programObject->getAttachedShaders(maxcount, count, shaders);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2317,7 +2317,7 @@
 {
     EVENT("(GLuint program = %d, const GLchar* name = %s)", program, name);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2347,7 +2347,7 @@
             return programBinary->getAttributeLocation(name);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, -1);
     }
@@ -2359,7 +2359,7 @@
 {
     EVENT("(GLenum pname = 0x%X, GLboolean* params = 0x%0.8p)",  pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2382,7 +2382,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2392,7 +2392,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint* params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2440,7 +2440,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2464,7 +2464,7 @@
 {
     EVENT("(GLuint fence = %d, GLenum pname = 0x%X, GLint *params = 0x%0.8p)", fence, pname, params);
 
-    try
+    ANGLE_TRY
     {
     
         gl::Context *context = gl::getNonLostContext();
@@ -2495,7 +2495,7 @@
             params[0] = fenceObject->getFencei(pname);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2505,7 +2505,7 @@
 {
     EVENT("(GLenum pname = 0x%X, GLfloat* params = 0x%0.8p)", pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2528,7 +2528,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2539,7 +2539,7 @@
     EVENT("(GLenum target = 0x%X, GLenum attachment = 0x%X, GLenum pname = 0x%X, GLint* params = 0x%0.8p)",
           target, attachment, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2839,7 +2839,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2849,7 +2849,7 @@
 {
     EVENT("()");
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getContext();
 
@@ -2860,7 +2860,7 @@
 
         return GL_NO_ERROR;
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return GL_OUT_OF_MEMORY;
     }
@@ -2870,7 +2870,7 @@
 {
     EVENT("(GLenum pname = 0x%X, GLint* params = 0x%0.8p)", pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2894,7 +2894,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2904,7 +2904,7 @@
 {
     EVENT("(GLuint program = %d, GLenum pname = %d, GLint* params = 0x%0.8p)", program, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -2982,7 +2982,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -2993,7 +2993,7 @@
     EVENT("(GLuint program = %d, GLsizei bufsize = %d, GLsizei* length = 0x%0.8p, GLchar* infolog = 0x%0.8p)",
           program, bufsize, length, infolog);
 
-    try
+    ANGLE_TRY
     {
         if (bufsize < 0)
         {
@@ -3014,7 +3014,7 @@
             programObject->getInfoLog(bufsize, length, infolog);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3024,7 +3024,7 @@
 {
     EVENT("GLenum target = 0x%X, GLenum pname = 0x%X, GLint *params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3046,7 +3046,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3056,7 +3056,7 @@
 {
     EVENT("(GLuint id = %d, GLenum pname = 0x%X, GLuint *params = 0x%0.8p)", id, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3087,7 +3087,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3097,7 +3097,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint* params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3138,7 +3138,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3148,7 +3148,7 @@
 {
     EVENT("(GLuint shader = %d, GLenum pname = %d, GLint* params = 0x%0.8p)", shader, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3186,7 +3186,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3197,7 +3197,7 @@
     EVENT("(GLuint shader = %d, GLsizei bufsize = %d, GLsizei* length = 0x%0.8p, GLchar* infolog = 0x%0.8p)",
           shader, bufsize, length, infolog);
 
-    try
+    ANGLE_TRY
     {
         if (bufsize < 0)
         {
@@ -3218,7 +3218,7 @@
             shaderObject->getInfoLog(bufsize, length, infolog);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3229,7 +3229,7 @@
     EVENT("(GLenum shadertype = 0x%X, GLenum precisiontype = 0x%X, GLint* range = 0x%0.8p, GLint* precision = 0x%0.8p)",
           shadertype, precisiontype, range, precision);
 
-    try
+    ANGLE_TRY
     {
         switch (shadertype)
         {
@@ -3263,7 +3263,7 @@
             return gl::error(GL_INVALID_ENUM);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3274,7 +3274,7 @@
     EVENT("(GLuint shader = %d, GLsizei bufsize = %d, GLsizei* length = 0x%0.8p, GLchar* source = 0x%0.8p)",
           shader, bufsize, length, source);
 
-    try
+    ANGLE_TRY
     {
         if (bufsize < 0)
         {
@@ -3295,7 +3295,7 @@
             shaderObject->getSource(bufsize, length, source);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3306,7 +3306,7 @@
     EVENT("(GLuint shader = %d, GLsizei bufsize = %d, GLsizei* length = 0x%0.8p, GLchar* source = 0x%0.8p)",
           shader, bufsize, length, source);
 
-    try
+    ANGLE_TRY
     {
         if (bufsize < 0)
         {
@@ -3327,7 +3327,7 @@
             shaderObject->getTranslatedSource(bufsize, length, source);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3337,7 +3337,7 @@
 {
     EVENT("(GLenum name = 0x%X)", name);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3371,7 +3371,7 @@
             return gl::error(GL_INVALID_ENUM, (GLubyte*)NULL);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, (GLubyte*)NULL);
     }
@@ -3381,7 +3381,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLfloat* params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3497,7 +3497,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3507,7 +3507,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint* params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3623,7 +3623,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3634,7 +3634,7 @@
     EVENT("(GLuint program = %d, GLint location = %d, GLsizei bufSize = %d, GLfloat* params = 0x%0.8p)",
           program, location, bufSize, params);
 
-    try
+    ANGLE_TRY
     {
         if (bufSize < 0)
         {
@@ -3669,7 +3669,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3679,7 +3679,7 @@
 {
     EVENT("(GLuint program = %d, GLint location = %d, GLfloat* params = 0x%0.8p)", program, location, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3709,7 +3709,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3720,7 +3720,7 @@
     EVENT("(GLuint program = %d, GLint location = %d, GLsizei bufSize = %d, GLint* params = 0x%0.8p)", 
           program, location, bufSize, params);
 
-    try
+    ANGLE_TRY
     {
         if (bufSize < 0)
         {
@@ -3755,7 +3755,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3765,7 +3765,7 @@
 {
     EVENT("(GLuint program = %d, GLint location = %d, GLint* params = 0x%0.8p)", program, location, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3795,7 +3795,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3805,7 +3805,7 @@
 {
     EVENT("(GLuint program = %d, const GLchar* name = 0x%0.8p)", program, name);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3839,7 +3839,7 @@
             return programBinary->getUniformLocation(name);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, -1);
     }
@@ -3851,7 +3851,7 @@
 {
     EVENT("(GLuint index = %d, GLenum pname = 0x%X, GLfloat* params = 0x%0.8p)", index, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3883,7 +3883,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3893,7 +3893,7 @@
 {
     EVENT("(GLuint index = %d, GLenum pname = 0x%X, GLint* params = 0x%0.8p)", index, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3926,7 +3926,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3936,7 +3936,7 @@
 {
     EVENT("(GLuint index = %d, GLenum pname = 0x%X, GLvoid** pointer = 0x%0.8p)", index, pname, pointer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -3955,7 +3955,7 @@
             *pointer = const_cast<GLvoid*>(context->getVertexAttribPointer(index));
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -3965,7 +3965,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum mode = 0x%X)", target, mode);
 
-    try
+    ANGLE_TRY
     {
         switch (mode)
         {
@@ -3990,7 +3990,7 @@
             return gl::error(GL_INVALID_ENUM);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4000,7 +4000,7 @@
 {
     EVENT("(GLuint buffer = %d)", buffer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4014,7 +4014,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4026,7 +4026,7 @@
 {
     EVENT("(GLenum cap = 0x%X)", cap);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4040,7 +4040,7 @@
             return context->getCap(cap);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, false);
     }
@@ -4052,7 +4052,7 @@
 {
     EVENT("(GLuint fence = %d)", fence);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4068,7 +4068,7 @@
             return fenceObject->isFence();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4080,7 +4080,7 @@
 {
     EVENT("(GLuint framebuffer = %d)", framebuffer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4094,7 +4094,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4106,7 +4106,7 @@
 {
     EVENT("(GLuint program = %d)", program);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4120,7 +4120,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4132,7 +4132,7 @@
 {
     EVENT("(GLuint id = %d)", id);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4141,7 +4141,7 @@
             return (context->getQuery(id, false, GL_NONE) != NULL) ? GL_TRUE : GL_FALSE;
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4153,7 +4153,7 @@
 {
     EVENT("(GLuint renderbuffer = %d)", renderbuffer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4167,7 +4167,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4179,7 +4179,7 @@
 {
     EVENT("(GLuint shader = %d)", shader);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4193,7 +4193,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4205,7 +4205,7 @@
 {
     EVENT("(GLuint texture = %d)", texture);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4219,7 +4219,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -4231,7 +4231,7 @@
 {
     EVENT("(GLfloat width = %f)", width);
 
-    try
+    ANGLE_TRY
     {
         if (width <= 0.0f)
         {
@@ -4245,7 +4245,7 @@
             context->setLineWidth(width);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4255,7 +4255,7 @@
 {
     EVENT("(GLuint program = %d)", program);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4278,7 +4278,7 @@
             context->linkProgram(program);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4288,7 +4288,7 @@
 {
     EVENT("(GLenum pname = 0x%X, GLint param = %d)", pname, param);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4338,7 +4338,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4348,7 +4348,7 @@
 {
     EVENT("(GLfloat factor = %f, GLfloat units = %f)", factor, units);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4357,7 +4357,7 @@
             context->setPolygonOffsetParams(factor, units);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4371,7 +4371,7 @@
           "GLenum format = 0x%X, GLenum type = 0x%X, GLsizei bufSize = 0x%d, GLvoid *data = 0x%0.8p)",
           x, y, width, height, format, type, bufSize, data);
 
-    try
+    ANGLE_TRY
     {
         if (width < 0 || height < 0 || bufSize < 0)
         {
@@ -4391,7 +4391,7 @@
             context->readPixels(x, y, width, height, format, type, &bufSize, data);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4404,7 +4404,7 @@
           "GLenum format = 0x%X, GLenum type = 0x%X, GLvoid* pixels = 0x%0.8p)",
           x, y, width, height, format, type,  pixels);
 
-    try
+    ANGLE_TRY
     {
         if (width < 0 || height < 0)
         {
@@ -4424,7 +4424,7 @@
             context->readPixels(x, y, width, height, format, type, NULL, pixels);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4434,11 +4434,11 @@
 {
     EVENT("()");
 
-    try
+    ANGLE_TRY
     {
         gl::Shader::releaseCompiler();
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4449,7 +4449,7 @@
     EVENT("(GLenum target = 0x%X, GLsizei samples = %d, GLenum internalformat = 0x%X, GLsizei width = %d, GLsizei height = %d)",
           target, samples, internalformat, width, height);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4464,7 +4464,7 @@
             context->setRenderbufferStorage(width, height, internalformat, samples);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4479,7 +4479,7 @@
 {
     EVENT("(GLclampf value = %f, GLboolean invert = %u)", value, invert);
 
-    try
+    ANGLE_TRY
     {
         gl::Context* context = gl::getNonLostContext();
 
@@ -4488,7 +4488,7 @@
             context->setSampleCoverageParams(gl::clamp01(value), invert == GL_TRUE);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4498,7 +4498,7 @@
 {
     EVENT("(GLuint fence = %d, GLenum condition = 0x%X)", fence, condition);
 
-    try
+    ANGLE_TRY
     {
         if (condition != GL_ALL_COMPLETED_NV)
         {
@@ -4519,7 +4519,7 @@
             fenceObject->setFence(condition);    
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4529,7 +4529,7 @@
 {
     EVENT("(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", x, y, width, height);
 
-    try
+    ANGLE_TRY
     {
         if (width < 0 || height < 0)
         {
@@ -4543,7 +4543,7 @@
             context->setScissorParams(x, y, width, height);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4555,12 +4555,12 @@
           "const GLvoid* binary = 0x%0.8p, GLsizei length = %d)",
           n, shaders, binaryformat, binary, length);
 
-    try
+    ANGLE_TRY
     {
         // No binary shader formats are supported.
         return gl::error(GL_INVALID_ENUM);
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4571,7 +4571,7 @@
     EVENT("(GLuint shader = %d, GLsizei count = %d, const GLchar** string = 0x%0.8p, const GLint* length = 0x%0.8p)",
           shader, count, string, length);
 
-    try
+    ANGLE_TRY
     {
         if (count < 0)
         {
@@ -4599,7 +4599,7 @@
             shaderObject->setSource(count, string, length);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4614,7 +4614,7 @@
 {
     EVENT("(GLenum face = 0x%X, GLenum func = 0x%X, GLint ref = %d, GLuint mask = %d)", face, func, ref, mask);
 
-    try
+    ANGLE_TRY
     {
         switch (face)
         {
@@ -4656,7 +4656,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4671,7 +4671,7 @@
 {
     EVENT("(GLenum face = 0x%X, GLuint mask = %d)", face, mask);
 
-    try
+    ANGLE_TRY
     {
         switch (face)
         {
@@ -4698,7 +4698,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4714,7 +4714,7 @@
     EVENT("(GLenum face = 0x%X, GLenum fail = 0x%X, GLenum zfail = 0x%X, GLenum zpas = 0x%Xs)",
           face, fail, zfail, zpass);
 
-    try
+    ANGLE_TRY
     {
         switch (face)
         {
@@ -4786,7 +4786,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4796,7 +4796,7 @@
 {
     EVENT("(GLuint fence = %d)", fence);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4817,7 +4817,7 @@
             return fenceObject->testFence();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4832,7 +4832,7 @@
           "GLint border = %d, GLenum format = 0x%X, GLenum type = 0x%X, const GLvoid* pixels = 0x%0.8p)",
           target, level, internalformat, width, height, border, format, type, pixels);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4900,7 +4900,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4910,7 +4910,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint param = %f)", target, pname, param);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -4951,7 +4951,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -4966,7 +4966,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint param = %d)", target, pname, param);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5007,7 +5007,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5023,7 +5023,7 @@
     EVENT("(GLenum target = 0x%X, GLsizei levels = %d, GLenum internalformat = 0x%X, GLsizei width = %d, GLsizei height = %d)",
            target, levels, internalformat, width, height);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5067,7 +5067,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5081,7 +5081,7 @@
           "const GLvoid* pixels = 0x%0.8p)",
            target, level, xoffset, yoffset, width, height, format, type, pixels);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5133,7 +5133,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5148,7 +5148,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLfloat* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5163,7 +5163,7 @@
             programBinary->setUniform1fv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5178,7 +5178,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLint* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5193,7 +5193,7 @@
             programBinary->setUniform1iv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5210,7 +5210,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLfloat* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5225,7 +5225,7 @@
             programBinary->setUniform2fv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5242,7 +5242,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLint* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5257,7 +5257,7 @@
             programBinary->setUniform2iv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5274,7 +5274,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLfloat* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5289,7 +5289,7 @@
             programBinary->setUniform3fv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5306,7 +5306,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLint* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5321,7 +5321,7 @@
             programBinary->setUniform3iv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5338,7 +5338,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLfloat* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5353,7 +5353,7 @@
             programBinary->setUniform4fv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5370,7 +5370,7 @@
 {
     EVENT("(GLint location = %d, GLsizei count = %d, const GLint* v = 0x%0.8p)", location, count, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5385,7 +5385,7 @@
             programBinary->setUniform4iv(location, count, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5396,7 +5396,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5411,7 +5411,7 @@
             programBinary->setUniformMatrix2fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5422,7 +5422,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5437,7 +5437,7 @@
             programBinary->setUniformMatrix3fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5448,7 +5448,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5463,7 +5463,7 @@
             programBinary->setUniformMatrix4fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5473,7 +5473,7 @@
 {
     EVENT("(GLuint program = %d)", program);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5501,7 +5501,7 @@
             context->useProgram(program);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5511,7 +5511,7 @@
 {
     EVENT("(GLuint program = %d)", program);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5534,7 +5534,7 @@
             programObject->validate();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5544,7 +5544,7 @@
 {
     EVENT("(GLuint index = %d, GLfloat x = %f)", index, x);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5559,7 +5559,7 @@
             context->setVertexAttribf(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5569,7 +5569,7 @@
 {
     EVENT("(GLuint index = %d, const GLfloat* values = 0x%0.8p)", index, values);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5584,7 +5584,7 @@
             context->setVertexAttribf(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5594,7 +5594,7 @@
 {
     EVENT("(GLuint index = %d, GLfloat x = %f, GLfloat y = %f)", index, x, y);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5609,7 +5609,7 @@
             context->setVertexAttribf(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5619,7 +5619,7 @@
 {
     EVENT("(GLuint index = %d, const GLfloat* values = 0x%0.8p)", index, values);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5634,7 +5634,7 @@
             context->setVertexAttribf(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5644,7 +5644,7 @@
 {
     EVENT("(GLuint index = %d, GLfloat x = %f, GLfloat y = %f, GLfloat z = %f)", index, x, y, z);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5659,7 +5659,7 @@
             context->setVertexAttribf(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5669,7 +5669,7 @@
 {
     EVENT("(GLuint index = %d, const GLfloat* values = 0x%0.8p)", index, values);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5684,7 +5684,7 @@
             context->setVertexAttribf(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5694,7 +5694,7 @@
 {
     EVENT("(GLuint index = %d, GLfloat x = %f, GLfloat y = %f, GLfloat z = %f, GLfloat w = %f)", index, x, y, z, w);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5709,7 +5709,7 @@
             context->setVertexAttribf(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5719,7 +5719,7 @@
 {
     EVENT("(GLuint index = %d, const GLfloat* values = 0x%0.8p)", index, values);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5733,7 +5733,7 @@
             context->setVertexAttribf(index, values);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5743,7 +5743,7 @@
 {
     EVENT("(GLuint index = %d, GLuint divisor = %d)", index, divisor);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5757,7 +5757,7 @@
             context->setVertexAttribDivisor(index, divisor);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5769,7 +5769,7 @@
           "GLboolean normalized = %u, GLsizei stride = %d, const GLvoid* ptr = 0x%0.8p)",
           index, size, type, normalized, stride, ptr);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -5834,7 +5834,7 @@
                                           normalized == GL_TRUE, false, stride, ptr);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5844,7 +5844,7 @@
 {
     EVENT("(GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)", x, y, width, height);
 
-    try
+    ANGLE_TRY
     {
         if (width < 0 || height < 0)
         {
@@ -5858,7 +5858,7 @@
             context->setViewportParams(x, y, width, height);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5870,7 +5870,7 @@
 {
     EVENT("(GLenum mode = 0x%X)", mode);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5885,7 +5885,7 @@
             UNIMPLEMENTED();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5896,7 +5896,7 @@
     EVENT("(GLenum mode = 0x%X, GLuint start = %u, GLuint end = %u, GLsizei count = %d, GLenum type = 0x%X, "
           "const GLvoid* indices = 0x%0.8p)", mode, start, end, count, type, indices);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5911,7 +5911,7 @@
             UNIMPLEMENTED();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5924,7 +5924,7 @@
           "GLenum type = 0x%X, const GLvoid* pixels = 0x%0.8p)",
           target, level, internalformat, width, height, depth, border, format, type, pixels);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -5963,7 +5963,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -5976,7 +5976,7 @@
           "GLenum format = 0x%X, GLenum type = 0x%X, const GLvoid* pixels = 0x%0.8p)",
           target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6022,7 +6022,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6034,7 +6034,7 @@
           "GLint zoffset = %d, GLint x = %d, GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
           target, level, xoffset, yoffset, zoffset, x, y, width, height);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6070,7 +6070,7 @@
             texture->copySubImage(target, level, xoffset, yoffset, zoffset, x, y, width, height, framebuffer);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6083,7 +6083,7 @@
           "const GLvoid* data = 0x%0.8p)",
           target, level, internalformat, width, height, depth, border, imageSize, data);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6127,7 +6127,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6140,7 +6140,7 @@
         "GLenum format = 0x%X, GLsizei imageSize = %d, const GLvoid* data = 0x%0.8p)",
         target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6197,7 +6197,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6207,7 +6207,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* ids = 0x%0.8p)", n, ids);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6229,7 +6229,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6239,7 +6239,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* ids = 0x%0.8p)", n, ids);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6261,7 +6261,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6271,7 +6271,7 @@
 {
     EVENT("(GLuint id = %u)", id);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6285,7 +6285,7 @@
             return (context->getQuery(id, false, GL_NONE) != NULL) ? GL_TRUE : GL_FALSE;
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -6297,7 +6297,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLuint id = %u)", target, id);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6315,7 +6315,7 @@
             context->beginQuery(target, id);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6325,7 +6325,7 @@
 {
     EVENT("(GLenum target = 0x%X)", target);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6344,7 +6344,7 @@
             context->endQuery(target);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6354,7 +6354,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint* params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6381,7 +6381,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6391,7 +6391,7 @@
 {
     EVENT("(GLuint id = %u, GLenum pname = 0x%X, GLint* params = 0x%0.8p)", id, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6427,7 +6427,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6437,7 +6437,7 @@
 {
     EVENT("(GLenum target = 0x%X)", target);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6451,7 +6451,7 @@
             return glUnmapBufferOES(target);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -6463,7 +6463,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLvoid** params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6477,7 +6477,7 @@
             glGetBufferPointervOES(target, pname, params);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6485,7 +6485,7 @@
 
 void __stdcall glDrawBuffers(GLsizei n, const GLenum* bufs)
 {
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6499,7 +6499,7 @@
             glDrawBuffersEXT(n, bufs);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6510,7 +6510,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6525,7 +6525,7 @@
             programBinary->setUniformMatrix2x3fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6536,7 +6536,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6551,7 +6551,7 @@
             programBinary->setUniformMatrix3x2fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6562,7 +6562,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6577,7 +6577,7 @@
             programBinary->setUniformMatrix2x4fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6588,7 +6588,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6603,7 +6603,7 @@
             programBinary->setUniformMatrix4x2fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6614,7 +6614,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6629,7 +6629,7 @@
             programBinary->setUniformMatrix3x4fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6640,7 +6640,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, GLboolean transpose = %u, const GLfloat* value = 0x%0.8p)",
           location, count, transpose, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6655,7 +6655,7 @@
             programBinary->setUniformMatrix4x3fv(location, count, transpose, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6667,7 +6667,7 @@
           "GLint dstY0 = %d, GLint dstX1 = %d, GLint dstY1 = %d, GLbitfield mask = 0x%X, GLenum filter = 0x%X)",
           srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
         if (context)
@@ -6688,7 +6688,7 @@
                                      mask, filter);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6699,7 +6699,7 @@
     EVENT("(GLenum target = 0x%X, GLsizei samples = %d, GLenum internalformat = 0x%X, GLsizei width = %d, GLsizei height = %d)",
         target, samples, internalformat, width, height);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6719,7 +6719,7 @@
             context->setRenderbufferStorage(width, height, internalformat, samples);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6730,7 +6730,7 @@
     EVENT("(GLenum target = 0x%X, GLenum attachment = 0x%X, GLuint texture = %u, GLint level = %d, GLint layer = %d)",
         target, attachment, texture, level, layer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6768,7 +6768,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6779,7 +6779,7 @@
     EVENT("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr length = %d, GLbitfield access = 0x%X)",
           target, offset, length, access);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6793,7 +6793,7 @@
             return glMapBufferRangeEXT(target, offset, length, access);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, reinterpret_cast<GLvoid*>(NULL));
     }
@@ -6805,7 +6805,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr length = %d)", target, offset, length);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6819,7 +6819,7 @@
             glFlushMappedBufferRangeEXT(target, offset, length);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6829,7 +6829,7 @@
 {
     EVENT("(GLuint array = %u)", array);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6852,7 +6852,7 @@
             context->bindVertexArray(array);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6862,7 +6862,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint* arrays = 0x%0.8p)", n, arrays);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6887,7 +6887,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6897,7 +6897,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* arrays = 0x%0.8p)", n, arrays);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6919,7 +6919,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -6929,7 +6929,7 @@
 {
     EVENT("(GLuint array = %u)", array);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -6950,7 +6950,7 @@
             return (vao != NULL ? GL_TRUE : GL_FALSE);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -6963,7 +6963,7 @@
     EVENT("(GLenum target = 0x%X, GLuint index = %u, GLint* data = 0x%0.8p)",
           target, index, data);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7025,7 +7025,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7035,7 +7035,7 @@
 {
     EVENT("(GLenum primitiveMode = 0x%X)", primitiveMode);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7074,7 +7074,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7084,7 +7084,7 @@
 {
     EVENT("(void)");
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7106,7 +7106,7 @@
             transformFeedback->stop();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7117,7 +7117,7 @@
     EVENT("(GLenum target = 0x%X, GLuint index = %u, GLuint buffer = %u, GLintptr offset = %d, GLsizeiptr size = %d)",
           target, index, buffer, offset, size);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7184,7 +7184,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7195,7 +7195,7 @@
     EVENT("(GLenum target = 0x%X, GLuint index = %u, GLuint buffer = %u)",
           target, index, buffer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7243,7 +7243,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7254,7 +7254,7 @@
     EVENT("(GLuint program = %u, GLsizei count = %d, const GLchar* const* varyings = 0x%0.8p, GLenum bufferMode = 0x%X)",
           program, count, varyings, bufferMode);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7295,7 +7295,7 @@
             programObject->setTransformFeedbackVaryings(count, varyings, bufferMode);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7307,7 +7307,7 @@
           "GLsizei* size = 0x%0.8p, GLenum* type = 0x%0.8p, GLchar* name = 0x%0.8p)",
           program, index, bufSize, length, size, type, name);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7339,7 +7339,7 @@
             programObject->getTransformFeedbackVarying(index, bufSize, length, size, type, name);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7350,7 +7350,7 @@
     EVENT("(GLuint index = %u, GLint size = %d, GLenum type = 0x%X, GLsizei stride = %d, const GLvoid* pointer = 0x%0.8p)",
           index, size, type, stride, pointer);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7412,7 +7412,7 @@
                                           stride, pointer);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7423,7 +7423,7 @@
     EVENT("(GLuint index = %u, GLenum pname = 0x%X, GLint* params = 0x%0.8p)",
           index, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7460,7 +7460,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7471,7 +7471,7 @@
     EVENT("(GLuint index = %u, GLenum pname = 0x%X, GLuint* params = 0x%0.8p)",
           index, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7508,7 +7508,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7519,7 +7519,7 @@
     EVENT("(GLuint index = %u, GLint x = %d, GLint y = %d, GLint z = %d, GLint w = %d)",
           index, x, y, z, w);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7539,7 +7539,7 @@
             context->setVertexAttribi(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7550,7 +7550,7 @@
     EVENT("(GLuint index = %u, GLuint x = %u, GLuint y = %u, GLuint z = %u, GLuint w = %u)",
           index, x, y, z, w);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7570,7 +7570,7 @@
             context->setVertexAttribu(index, vals);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7580,7 +7580,7 @@
 {
     EVENT("(GLuint index = %u, const GLint* v = 0x%0.8p)", index, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7599,7 +7599,7 @@
             context->setVertexAttribi(index, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7609,7 +7609,7 @@
 {
     EVENT("(GLuint index = %u, const GLuint* v = 0x%0.8p)", index, v);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7628,7 +7628,7 @@
             context->setVertexAttribu(index, v);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7639,7 +7639,7 @@
     EVENT("(GLuint program = %u, GLint location = %d, GLuint* params = 0x%0.8p)",
           program, location, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7674,7 +7674,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7685,7 +7685,7 @@
     EVENT("(GLuint program = %u, const GLchar *name = 0x%0.8p)",
           program, name);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7717,7 +7717,7 @@
             return programBinary->getFragDataLocation(name);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, 0);
     }
@@ -7753,7 +7753,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, const GLuint* value = 0x%0.8p)",
           location, count, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7768,7 +7768,7 @@
             programBinary->setUniform1uiv(location, count, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7779,7 +7779,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, const GLuint* value = 0x%0.8p)",
           location, count, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7794,7 +7794,7 @@
             programBinary->setUniform2uiv(location, count, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7805,7 +7805,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, const GLuint* value)",
           location, count, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7820,7 +7820,7 @@
             programBinary->setUniform3uiv(location, count, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7831,7 +7831,7 @@
     EVENT("(GLint location = %d, GLsizei count = %d, const GLuint* value = 0x%0.8p)",
           location, count, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7846,7 +7846,7 @@
             programBinary->setUniform4uiv(location, count, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7857,7 +7857,7 @@
     EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLint* value = 0x%0.8p)",
           buffer, drawbuffer, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7889,7 +7889,7 @@
             context->clearBufferiv(buffer, drawbuffer, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7900,7 +7900,7 @@
     EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLuint* value = 0x%0.8p)",
           buffer, drawbuffer, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7926,7 +7926,7 @@
             context->clearBufferuiv(buffer, drawbuffer, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7937,7 +7937,7 @@
     EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, const GLfloat* value = 0x%0.8p)",
           buffer, drawbuffer, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -7969,7 +7969,7 @@
             context->clearBufferfv(buffer, drawbuffer, value);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -7980,7 +7980,7 @@
     EVENT("(GLenum buffer = 0x%X, GLint drawbuffer = %d, GLfloat depth, GLint stencil = %d)",
           buffer, drawbuffer, depth, stencil);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8006,7 +8006,7 @@
             context->clearBufferfi(buffer, drawbuffer, depth, stencil);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8016,7 +8016,7 @@
 {
     EVENT("(GLenum name = 0x%X, GLuint index = %u)", name, index);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8040,7 +8040,7 @@
             return reinterpret_cast<const GLubyte*>(context->getExtensionString(index));
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, reinterpret_cast<GLubyte*>(NULL));
     }
@@ -8053,7 +8053,7 @@
     EVENT("(GLenum readTarget = 0x%X, GLenum writeTarget = 0x%X, GLintptr readOffset = %d, GLintptr writeOffset = %d, GLsizeiptr size = %d)",
           readTarget, writeTarget, readOffset, writeOffset, size);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8103,7 +8103,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8114,7 +8114,7 @@
     EVENT("(GLuint program = %u, GLsizei uniformCount = %d, const GLchar* const* uniformNames = 0x%0.8p, GLuint* uniformIndices = 0x%0.8p)",
           program, uniformCount, uniformNames, uniformIndices);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8161,7 +8161,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8172,7 +8172,7 @@
     EVENT("(GLuint program = %u, GLsizei uniformCount = %d, const GLuint* uniformIndices = 0x%0.8p, GLenum pname = 0x%X, GLint* params = 0x%0.8p)",
           program, uniformCount, uniformIndices, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8241,7 +8241,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8251,7 +8251,7 @@
 {
     EVENT("(GLuint program = %u, const GLchar* uniformBlockName = 0x%0.8p)", program, uniformBlockName);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8285,7 +8285,7 @@
             return programBinary->getUniformBlockIndex(uniformBlockName);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, 0);
     }
@@ -8298,7 +8298,7 @@
     EVENT("(GLuint program = %u, GLuint uniformBlockIndex = %u, GLenum pname = 0x%X, GLint* params = 0x%0.8p)",
           program, uniformBlockIndex, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8349,7 +8349,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8360,7 +8360,7 @@
     EVENT("(GLuint program = %u, GLuint uniformBlockIndex = %u, GLsizei bufSize = %d, GLsizei* length = 0x%0.8p, GLchar* uniformBlockName = 0x%0.8p)",
           program, uniformBlockIndex, bufSize, length, uniformBlockName);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8395,7 +8395,7 @@
             programBinary->getActiveUniformBlockName(uniformBlockIndex, bufSize, length, uniformBlockName);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8406,7 +8406,7 @@
     EVENT("(GLuint program = %u, GLuint uniformBlockIndex = %u, GLuint uniformBlockBinding = %u)",
           program, uniformBlockIndex, uniformBlockBinding);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8447,7 +8447,7 @@
             programObject->bindUniformBlock(uniformBlockIndex, uniformBlockBinding);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8458,7 +8458,7 @@
     EVENT("(GLenum mode = 0x%X, GLint first = %d, GLsizei count = %d, GLsizei instanceCount = %d)",
           mode, first, count, instanceCount);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8473,7 +8473,7 @@
             UNIMPLEMENTED();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8484,7 +8484,7 @@
     EVENT("(GLenum mode = 0x%X, GLsizei count = %d, GLenum type = 0x%X, const GLvoid* indices = 0x%0.8p, GLsizei instanceCount = %d)",
           mode, count, type, indices, instanceCount);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8499,7 +8499,7 @@
             UNIMPLEMENTED();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8509,7 +8509,7 @@
 {
     EVENT("(GLenum condition = 0x%X, GLbitfield flags = 0x%X)", condition, flags);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8533,7 +8533,7 @@
             return context->createFenceSync(condition);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, reinterpret_cast<GLsync>(NULL));
     }
@@ -8545,7 +8545,7 @@
 {
     EVENT("(GLsync sync = 0x%0.8p)", sync);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8559,7 +8559,7 @@
             return (context->getFenceSync(sync) != NULL);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -8571,7 +8571,7 @@
 {
     EVENT("(GLsync sync = 0x%0.8p)", sync);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8590,7 +8590,7 @@
             context->deleteFenceSync(sync);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8601,7 +8601,7 @@
     EVENT("(GLsync sync = 0x%0.8p, GLbitfield flags = 0x%X, GLuint64 timeout = %llu)",
           sync, flags, timeout);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8627,7 +8627,7 @@
             return fenceSync->clientWait(flags, timeout);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -8640,7 +8640,7 @@
     EVENT("(GLsync sync = 0x%0.8p, GLbitfield flags = 0x%X, GLuint64 timeout = %llu)",
           sync, flags, timeout);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8671,7 +8671,7 @@
             fenceSync->serverWait();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8682,7 +8682,7 @@
     EVENT("(GLenum pname = 0x%X, GLint64* params = 0x%0.8p)",
           pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8710,7 +8710,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8721,7 +8721,7 @@
     EVENT("(GLsync sync = 0x%0.8p, GLenum pname = 0x%X, GLsizei bufSize = %d, GLsizei* length = 0x%0.8p, GLint* values = 0x%0.8p)",
           sync, pname, bufSize, length, values);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8756,7 +8756,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8767,7 +8767,7 @@
     EVENT("(GLenum target = 0x%X, GLuint index = %u, GLint64* data = 0x%0.8p)",
           target, index, data);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8826,7 +8826,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8837,7 +8837,7 @@
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLint64* params = 0x%0.8p)",
           target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8890,7 +8890,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8900,7 +8900,7 @@
 {
     EVENT("(GLsizei count = %d, GLuint* samplers = 0x%0.8p)", count, samplers);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8922,7 +8922,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8932,7 +8932,7 @@
 {
     EVENT("(GLsizei count = %d, const GLuint* samplers = 0x%0.8p)", count, samplers);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8954,7 +8954,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -8964,7 +8964,7 @@
 {
     EVENT("(GLuint sampler = %u)", sampler);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -8978,7 +8978,7 @@
             return context->isSampler(sampler);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -8990,7 +8990,7 @@
 {
     EVENT("(GLuint unit = %u, GLuint sampler = %u)", unit, sampler);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9014,7 +9014,7 @@
             context->bindSampler(unit, sampler);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9024,7 +9024,7 @@
 {
     EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, GLint param = %d)", sampler, pname, param);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9053,7 +9053,7 @@
             context->samplerParameteri(sampler, pname, param);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9068,7 +9068,7 @@
 {
     EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, GLfloat param = %g)", sampler, pname, param);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9097,7 +9097,7 @@
             context->samplerParameterf(sampler, pname, param);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9112,7 +9112,7 @@
 {
     EVENT("(GLuint sampler = %u, GLenum pname = 0x%X, GLint* params = 0x%0.8p)", sampler, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9136,7 +9136,7 @@
             *params = context->getSamplerParameteri(sampler, pname);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9146,7 +9146,7 @@
 {
     EVENT("(GLuint sample = %ur, GLenum pname = 0x%X, GLfloat* params = 0x%0.8p)", sampler, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9170,7 +9170,7 @@
             *params = context->getSamplerParameterf(sampler, pname);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9180,7 +9180,7 @@
 {
     EVENT("(GLuint index = %u, GLuint divisor = %u)", index, divisor);
 
-    try
+    ANGLE_TRY
     {
         if (index >= gl::MAX_VERTEX_ATTRIBS)
         {
@@ -9199,7 +9199,7 @@
             context->setVertexAttribDivisor(index, divisor);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9209,7 +9209,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLuint id = %u)", target, id);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9246,7 +9246,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9256,7 +9256,7 @@
 {
     EVENT("(GLsizei n = %d, const GLuint* ids = 0x%0.8p)", n, ids);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9273,7 +9273,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9283,7 +9283,7 @@
 {
     EVENT("(GLsizei n = %d, GLuint* ids = 0x%0.8p)", n, ids);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9300,7 +9300,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9310,7 +9310,7 @@
 {
     EVENT("(GLuint id = %u)", id);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9324,7 +9324,7 @@
             return ((context->getTransformFeedback(id) != NULL) ? GL_TRUE : GL_FALSE);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -9336,7 +9336,7 @@
 {
     EVENT("(void)");
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9359,7 +9359,7 @@
             transformFeedback->pause();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9369,7 +9369,7 @@
 {
     EVENT("(void)");
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9392,7 +9392,7 @@
             transformFeedback->resume();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9403,7 +9403,7 @@
     EVENT("(GLuint program = %u, GLsizei bufSize = %d, GLsizei* length = 0x%0.8p, GLenum* binaryFormat = 0x%0.8p, GLvoid* binary = 0x%0.8p)",
           program, bufSize, length, binaryFormat, binary);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9418,7 +9418,7 @@
             UNIMPLEMENTED();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9429,7 +9429,7 @@
     EVENT("(GLuint program = %u, GLenum binaryFormat = 0x%X, const GLvoid* binary = 0x%0.8p, GLsizei length = %d)",
           program, binaryFormat, binary, length);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9444,7 +9444,7 @@
             UNIMPLEMENTED();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9455,7 +9455,7 @@
     EVENT("(GLuint program = %u, GLenum pname = 0x%X, GLint value = %d)",
           program, pname, value);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9470,7 +9470,7 @@
             UNIMPLEMENTED();
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9481,7 +9481,7 @@
     EVENT("(GLenum target = 0x%X, GLsizei numAttachments = %d, const GLenum* attachments = 0x%0.8p)",
           target, numAttachments, attachments);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9501,7 +9501,7 @@
             context->invalidateFrameBuffer(target, numAttachments, attachments, 0, 0, maxDimension, maxDimension);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9513,7 +9513,7 @@
           "GLint y = %d, GLsizei width = %d, GLsizei height = %d)",
           target, numAttachments, attachments, x, y, width, height);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9532,7 +9532,7 @@
             context->invalidateFrameBuffer(target, numAttachments, attachments, x, y, width, height);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9543,7 +9543,7 @@
     EVENT("(GLenum target = 0x%X, GLsizei levels = %d, GLenum internalformat = 0x%X, GLsizei width = %d, GLsizei height = %d)",
           target, levels, internalformat, width, height);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9580,7 +9580,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9592,7 +9592,7 @@
           "GLsizei height = %d, GLsizei depth = %d)",
           target, levels, internalformat, width, height, depth);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9629,7 +9629,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9641,7 +9641,7 @@
           "GLint* params = 0x%0.8p)",
           target, internalformat, pname, bufSize, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9682,7 +9682,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9698,7 +9698,7 @@
           "GLbitfield mask = 0x%X, GLenum filter = 0x%X)",
           srcX0, srcY0, srcX1, srcX1, dstX0, dstY0, dstX1, dstY1, mask, filter);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9715,7 +9715,7 @@
                                      mask, filter);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9729,11 +9729,11 @@
           "GLenum format = 0x%X, GLenum type = 0x%x, const GLvoid* pixels = 0x%0.8p)",
           target, level, internalformat, width, height, depth, border, format, type, pixels);
 
-    try
+    ANGLE_TRY
     {
         UNIMPLEMENTED();   // FIXME
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9745,7 +9745,7 @@
     EVENT("(GLenum program = 0x%X, bufSize = %d, length = 0x%0.8p, binaryFormat = 0x%0.8p, binary = 0x%0.8p)",
           program, bufSize, length, binaryFormat, binary);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9773,7 +9773,7 @@
             *binaryFormat = GL_PROGRAM_BINARY_ANGLE;
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9785,7 +9785,7 @@
     EVENT("(GLenum program = 0x%X, binaryFormat = 0x%x, binary = 0x%0.8p, length = %d)",
           program, binaryFormat, binary, length);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9806,7 +9806,7 @@
             context->setProgramBinary(program, binary, length);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9816,7 +9816,7 @@
 {
     EVENT("(GLenum n = %d, bufs = 0x%0.8p)", n, bufs);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9864,7 +9864,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9874,7 +9874,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLenum pname = 0x%X, GLvoid** params = 0x%0.8p)", target, pname, params);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9902,7 +9902,7 @@
             }
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -9912,7 +9912,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLbitfield access = 0x%X)", target, access);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9943,7 +9943,7 @@
             return buffer->mapRange(0, buffer->getSize(), GL_MAP_WRITE_BIT);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, reinterpret_cast<GLvoid*>(NULL));
     }
@@ -9955,7 +9955,7 @@
 {
     EVENT("(GLenum target = 0x%X)", target);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -9980,7 +9980,7 @@
             return GL_TRUE;
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, GL_FALSE);
     }
@@ -9993,7 +9993,7 @@
     EVENT("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr length = %d, GLbitfield access = 0x%X)",
           target, offset, length, access);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -10067,7 +10067,7 @@
             return buffer->mapRange(offset, length, access);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, reinterpret_cast<GLvoid*>(NULL));
     }
@@ -10079,7 +10079,7 @@
 {
     EVENT("(GLenum target = 0x%X, GLintptr offset = %d, GLsizeiptr length = %d)", target, offset, length);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -10120,7 +10120,7 @@
             // We do not currently support a non-trivial implementation of FlushMappedBufferRange
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY);
     }
@@ -10189,7 +10189,7 @@
     EVENT("(egl::Surface* surface = 0x%0.8p)",
           surface);
 
-    try
+    ANGLE_TRY
     {
         gl::Context *context = gl::getNonLostContext();
 
@@ -10206,7 +10206,7 @@
             textureObject->bindTexImage(surface);
         }
     }
-    catch (...)
+    ANGLE_CATCH_ALL
     {
         return gl::error(GL_OUT_OF_MEMORY, false);
     }