Flash CS3 文档 |
|||
| ActionScript 3.0 编程 > 处理错误 > 错误类型 | |||
开发和运行应用程序时,您会遇到不同类型的错误和错误术语。下面列出了主要的错误类型和术语:
catch 语句。 例如,以下代码将会引发一个运行时错误,原因是在程序试图上载文件之前没有调用 browse() 方法:
var fileRef:FileReference = new FileReference();
try
{
fileRef.upload("http://www.yourdomain.com/fileupload.cfm");
}
catch (error:IllegalOperationError)
{
trace(error);
// 错误 #2037:函数的调用顺序不正确,或者之前的
// 调用未成功。
}
在本例中,将同步引发一个运行时错误,原因是 Flash Player 断定在试图上载文件之前没有调用 browse() 方法。
有关同步错误处理的详细信息,请参阅在应用程序中处理同步错误。
下面以前面提到的文件上载同步错误为例。如果在文件上载开始之前成功调用了 browse() 方法,则 Flash Player 会调度若干个事件。例如,上载开始时,将调度 open 事件。文件上载操作成功完成时,将调度 complete 事件。由于事件处理是异步的(即不是在特定、已知或预先指定的时间发生),因此需要使用 addEventListener() 方法来侦听这些特定的事件,如以下代码所示:
var fileRef:FileReference = new FileReference();
fileRef.addEventListener(Event.SELECT, selectHandler);
fileRef.addEventListener(Event.OPEN, openHandler);
fileRef.addEventListener(Event.COMPLETE, completeHandler);
fileRef.browse();
function selectHandler(event:Event):void
{
trace("...select...");
var request:URLRequest = new URLRequest("http://www.yourdomain.com/fileupload.cfm");
request.method = URLRequestMethod.POST;
event.target.upload(request.url);
}
function openHandler(event:Event):void
{
trace("...open...");
}
function completeHandler(event:Event):void
{
trace("...complete...");
}
有关异步错误处理的详细信息,请参阅响应错误事件和状态。
catch 语句)来响应它。应用程序引发错误后,如果在当前级别或更高级别找不到适当的 catch 语句或事件处理函数来处理错误,则认为该错误是未捕获的异常。 鉴于用户不一定能够自行解决错误,如果错误并未使当前 SWF 文件停止播放,按照设计,Flash Player 在运行时将忽略未捕获的异常并尝试继续播放该文件。忽略未捕获异常的过程称为“无提示失败”,它会使应用程序的调试变得非常复杂。Flash Player 的调试版对未捕获异常的响应方式是终止当前脚本并在 trace 语句输出中显示未捕获的异常或将错误消息写入日志文件。如果异常对象是 Error 类或其子类的一个实例,则将调用 getStackTrace() 方法,并且还会在 trace 语句输出或日志文件中显示堆栈跟踪信息。有关使用 Flash Player 调试版的详细信息,请参阅处理 Flash Player 的调试版。
Flash CS3
当前页: http://livedocs.adobe.com/flash/9.0_cn/main/00000097.html