📄 securityerrorexample.as
字号:
package org.kingda.book.error
{
import flash.display.Sprite;
import flash.net.Socket;
public class SecurityErrorExample extends Sprite
{
var socket:Socket;
public function SecurityErrorExample() {
socket = new Socket();
var targetServer:String = "www.kingda.org";
var port:uint = 66666;
try {
connectMethodA(targetServer, port);
}
catch(e:CustomBError) {
trace (e);
}
catch(e:CustomAError) {
trace ("抓到A了:"+ e +"\t出错端口号:" + e.getPort());
//输出:抓到A了:SecurityError 出错端口号:66666
}
catch(e:SecurityError) {
trace(e);
}
}
private function connectMethodA(host:String, portNum:int):void {
//...A方法的其他代码....
try {
socket.connect(host, portNum);
} catch (e:SecurityError) {
var customAErr:CustomAError = new CustomAError();
customAErr.record(host, portNum);
throw customAErr;
}
}
private function connectMethodB(host:String, portNum:int):void {
//...B方法的其他代码....
try {
socket.connect(host, portNum);
} catch (e:SecurityError) {
throw new CustomBError();
}
}
}
}
class CustomAError extends SecurityError {
//...CustomAError的一些代码....
private var infoForA:Object = new Object();
public function record (host:String, portNum:int):void {
infoForA.host = host;
infoForA.port = portNum;
//...其他代码....
}
public function getPort():int {
return infoForA.port;
}
}
class CustomBError extends SecurityError {
//...CustomBError的代码...
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -