- 浏览: 336837 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
wangjun0603:
学习了,写的真好!
native2ascii的简单应用 -
qq672076266:
...
native2ascii的简单应用 -
loyalboys:
...
native2ascii的简单应用 -
hanjinting1004:
...
Flex开发者需要知道的10件事 -
管好你家猫:
学了,文章,
native2ascii的简单应用
Flash 播放器8.5 开始支持try/catch 方法来处理错误。这意味着可以灵活的处理遇到的错误
了。除了语法错误(这时编译器就通不过),其他类型的错误如非法数据等都可以自己处理。
处理异常包括两个部分, 抛出异常和捕获异常。有些异常系统会自动抛出, 比如
IllegalOperationError, MemoryError, 和ScriptTimeoutError. 它们都在flash.errors 包中。除了系
统定义的错误外也可以抛出自定义错误,然后捕获它进行处理。使用throw 语句抛出一个Error
对象或Error 子类实例,比如:
throw new Error("A general error occurred.");
正如我们看到的,Error 构造器接受一个参数,这个信息和这个错误相关联。这个参数是可选
的,依赖于你怎样处理这个错误,你可以不使用,但是大多数情况下都指定一个错误信息作为
调试目的。
一旦异常被抛出,Flash就会暂停当前进程去寻找catch 块去处理异常。任何有潜在错误的代码
都要放在try 块中,如果异常抛出,只有它所在的try 块被暂停,然后相关联的catch 块被调
用,看下面的例子:
try { trace("This code is about to throw an error."); throw new Error("A general error occurred."); trace("This line won't run"); } catch (errObject:Error) { trace("The catch block has been called."); trace("The message is: " + errObject.message); }
上面的代码数出以下信息:
This code is about to throw an error.
The catch block has been called.
The message is: A general error occurred.
当然,上面的代码还是过于简单,但是这是个基本框架,可以看到只要抛出异常,try 块就会退
出,catch 块被执行,传递了一个Error 对象给catch.
更多情况下,异常是从函数或方法中抛出的,Flash 会检测该函数是否在try 块内被调用,如
果是,则调用相应的catch 块。
private function displayMessage(message:String):void { if(message == undefined) { throw new Error("No message was defined."); } trace(message); } try { trace("This code is about to throw an error."); displayMessage( ); trace("This line won't run"); } catch (errObject:Error) { trace("The catch block has been called."); trace("The message is: " + errObject.message); }
上面的代码输出以下内容:
This code is about to throw an error.
The catch block has been called.
The message is: No message was defined.
如果你不肯定你的函数或方法会在何时或如何抛出异常,这时就应该在try块进行调用。
// 定一个在指定的sprite里的画矩形函数。
private function drawRectangle(sprite:Sprite, newWidth:Number, newHeight:Number):void { // 检测长和宽的数值是否合法,否则抛出异常。 if(isNaN(newWidth) || isNaN(newHeight)) { throw new Error("Invalid dimensions specified."); } // 如无异常,则画出矩形 sprite.graphics.lineStyle(1, 0, 1); sprite.graphics.lineTo(nWidth, 0); sprite.graphics.lineTo(nWidth, nHeight); sprite.graphics.lineTo(0, nHeight); sprite.graphics.lineTo(0, 0); }
现在我们在try/catch 语句内调用该函数。
try { drawRectangle(this, widthB, heightB); } catch(errObject:Error) { this.graphics.clear( ); tOutput.text = "An error occurred: " + errObject.message; }
另外对于try/catch 语句,还可以加入finally 块,finally 块包含的代码无论是否遇到异常都会
被执行。例如下面的两个例子效果相同:
//没有使用finally:
private function displayMessage(message:String):void { try { if(message == undefined) { throw new Error("The message is undefined."); } trace(message); } catch (errObject:Error) { trace(errObject.message); } trace("This is the last line displayed."); }
//使用finally:
private function displayMessage(message:String):void { try { if(message == undefined) { throw new Error("The message is undefined."); } trace(message); } catch (errObject:Error) { trace(errObject.message); } finally { trace("This is the last line displayed."); } }
如果在catch中使用了return语句,那结果就不一样了:
//没有使用finally:
private function displayMessage(message:String):void { try { if(message == undefined) { throw new Error("The message is undefined."); } trace(message); } catch (errObject:Error) { trace(errObject.message); return; } // 这一句没有执行. trace("This is the last line displayed."); }
//使用finally:
private function displayMessage(message:String):void { try { if(message == undefined) { throw new Error("The message is undefined."); } trace(message); } catch (errObject:Error) { trace(errObject.message); return; } finally { // 执行,不管是否有异常发生。 trace("This is the last line displayed."); } }
通过这一节的学习,现在你可以建立复杂的异常处理系统。
发表评论
-
应用避免访问浏览器缓存
2011-05-12 17:33 1388项目经常遇到这么个问题:程序做了改动之后,由于浏览 ... -
flex皮肤资源
2011-05-05 15:28 1300如果要找flex皮肤,这里的皮肤真是多。http: ... -
flex利用asdoc生成doc和制作chm
2011-04-02 17:33 1631How to set up ASDoc in Flex Bui ... -
restrict的应用实例
2011-04-02 11:54 11321. 限制某个字符的输入,用符号 ^ 跟上要限制的 ... -
flex中as、instanceof、is、 typeof用法
2011-03-24 09:48 4556“as” 我主要用它做类型转化 假设有一个类叫做 ... -
在Chart上画平均线的三种方法
2011-02-16 14:52 1425在Chart上画平均线的三种方法 ... -
Flex Frameworks
2010-11-12 15:32 1000Some say that if a t ... -
flex4国际化
2010-11-11 16:56 2125国际化变得如此简单 <?xml versi ... -
使用ToolTipManager自定义tooltip
2010-11-05 14:52 2621直接贴代码,一看就懂。 <?xml version=& ... -
flex 校验
2010-11-05 14:41 1035①flex中的校验可以使用mx.validator ... -
Flex中的fx、mx和s命名空间
2010-11-05 13:12 3391Flex 4带给我们的 ... -
socket中writeUTF和writeUTFBytes的区别
2010-11-03 10:25 2798Q:用writeUTF发送数据的时候,后台多 ... -
修改flex默认loading
2010-10-18 13:51 2525一: SWF Flex 2 PreloaderSWF ... -
AIR文件操作
2010-09-26 10:01 2928AIR文件操作(一):AIR文件基础 AI ... -
ActionScript 3.0 Socket编程
2010-09-17 17:25 1173在使用ActionScript3.0进行编程的时候需要注 ... -
as 对象深度拷贝
2010-08-20 10:32 992这是一篇关于as3中对象深度拷贝的问题今天自己总结下,便 ... -
Create a FlexUnit TestCase
2010-04-29 20:34 1045Problem How to create a Fle ... -
as3corelib
2010-04-29 20:10 1487google code :http://code. ... -
FusionCharts
2010-04-28 19:26 2370无意中接触到这个产品FusionCharts,3D ... -
flex datagrid自动换行
2010-04-19 17:10 2888以为datagrid的自动换行有多复杂,其实 ...
相关推荐
异常处理是每个应用程序都会用到的,纵然在程序编写期间我们都会最大限度的考虑可能发生的异常并进行相应的处理,但是往往并不能完全考虑周全,百密一疏,出现未处理异常而导致程序出错,数据丢失,如用户输入错误...
一个`__try`块包含了可能会抛出异常的代码,而`__except`块则包含处理异常的代码。值得注意的是,`__try`块后面必须跟一个`__except`或`__finally`块,但不能同时存在两者。然而,`__try`-`__except`块可以嵌套在`__...
1.文件包括污水处理异常工况的数据集 2.文件包括污水处理异常工况迁移学习的网络结构best1.mat 3.文件包括污水处理异常工况,论文50篇左右 4.文件配合博主文章进行讲解使用,readme important.txt文件查看目录 5....
前一章讨论了当一个异常过滤器返回 E X C E P T I O N _ C O N T I N U E _ S E A R C H时会发生什么事 情。返回EXCEPTION_CONTINUE_SEARCH 是...在这种情况下,就出现了所谓的“未处理异常”(Unhandled exception)。
抛出异常是指程序中出现错误时,抛出异常对象,以便于捕获和处理异常。捕获异常是指使用 catch 语句捕获抛出的异常对象,并进行相应的处理。 实验代码 ```java class Example1 { static void method() { int a = ...
Spring Cloud Gateway默认使用`DefaultErrorWebExceptionHandler`类来处理异常,该类继承自`AbstractErrorWebExceptionHandler`,并在内部使用了`ErrorAttributes`和`ResourceProperties`等组件来收集错误信息。...
### UI处理异常知识点详解 #### 异常处理基础概念 在计算机编程中,异常处理是一种用于处理程序运行过程中出现的错误或非预期行为的技术。Java作为一种广泛应用的编程语言,提供了强大的异常处理机制来帮助开发者...
### 第07章 处理异常和错误 #### 异常的概念 在计算机编程中,异常(Exception)指的是程序在运行过程中出现的错误或者非预期的行为。这些异常情况包括但不限于除以零的操作、代码语法错误、操作系统资源不可用等...
数据预处理是数据挖掘和分析过程中至关重要的一步,它包括数据清洗、数据集成、数据转换和数据规约等多个环节。其中,剔除异常值和数据...正确地处理异常值和平滑数据,可以帮助研究者和分析师得到更为真实可靠的结果。
### 精通Java处理异常:深入理解与实践 在Java编程中,异常处理是确保程序稳定性和健壮性的重要机制。本文将深入探讨Java异常处理的核心概念、分类以及如何在实际开发中有效地管理和捕获异常,从而帮助开发者提升...
Java捕获和处理异常 Java捕获和处理异常是Java编程语言中的一种机制,用于处理程序中的异常情况。异常是指程序在执行过程中出现的、不期望的事件,可能会导致程序的崩溃或错误。Java提供了try、catch和finally三种...
总的来说,正确地使用`try-catch-finally`可以帮助我们编写出更加健壮的代码,能够优雅地处理异常,保持程序的稳定运行,并提供有价值的错误反馈,从而提高用户体验。理解并熟练掌握异常处理是每个IT专业人士必备的...
与Retrofit结合使用时,可以将网络请求转换为可观察的序列,从而更容易控制数据流和处理异常。 在Retrofit接口中返回`Observable`,我们可以通过订阅(subscribe)来处理数据: ```java apiService.getUser(userId...
在这个“375.373.JAVA基础教程_异常处理-处理异常:try-catch方式(375)”的教程中,我们将深入探讨Java中的异常处理机制,特别是如何通过try-catch语句块来处理异常。 异常在Java中是一种对象,它是类`Exception`或...
然而,C语言本身并不直接支持异常处理机制,它依赖于错误返回码和自定义错误处理函数来处理异常情况。但在某些情况下,开发者可能需要在C语言中实现类似异常处理的功能,以增强代码的健壮性和可维护性。本篇文章将...
在.NET开发环境中,C#语言提供了丰富的特性(Attributes)、依赖注入(DI)和面向切面编程(AOP)等机制,使得我们可以...通过对这些文件的分析和学习,开发者可以进一步理解如何在实际项目中应用C#和AOP来处理异常。
在ASP.NET开发中,处理异常和错误是至关重要的部分,因为这直接影响到应用程序的稳定性和用户体验。本资源主要探讨了如何有效地在ASP.NET环境中管理异常,确保程序在遇到问题时能够优雅地处理并提供有用的反馈。 1....
比如,源码可能包含了如何使用`易出错`和`恢复出错`等关键字来处理系统级异常,如何自定义异常类来扩展异常处理功能,以及如何在多线程环境下正确处理异常。 此外,这些源码还可能涉及到一些高级的异常处理技术,如...
这个"Java实例 - 使用catch处理异常源代码-详细教程.zip"文件显然包含了一组示例代码,旨在帮助开发者深入理解如何在Java中有效地管理异常。在本文中,我们将深入探讨Java中的异常处理机制,并通过catch块的使用来...