移ろいやすいユーザーの心をつかむためのエラー処理Flashの基礎を無料で習得! ActionScript入門(7)(1/3 ページ)

» 2008年07月10日 00時00分 公開
[吉村美保クラスメソッド株式会社]

編集部注:この連載をより深く理解するためには、記事「いまさら聞けない! FlashとActionScriptについても併せてご覧ください。

どうせ作るなら安定したFlashアプリを

 ActionScript入門講座も第7回目となりました。前回の「ActionScriptで頑張ればFlashゲームは無料で作れる」では、福笑いのFlashゲームのアプリケーションを作りました。応用してぜひいろいろと作ってみてください。もし面白いものができたら多くの人に使ってもらいたいですよね。だけど、せっかくのアプリケーションも、途中で予期しない動作をしてしまったとしたらとても残念です。どうせ作るなら安定したFlashアプリケーションを作りたいものですね。今回は、そのために必要なエラー処理について学んでいきたいと思います。

エラー処理って??

 エラーは大きく分けると、コンパイルエラーランタイムエラーの2種類があります。コンパイルエラーは皆さんが「mxmlc」コマンドでasファイルをコンパイルしたときに出るエラーです。ランタイムエラーはアプリケーションの実行中に発生するエラーです。

 コンパイルエラーの多くはコードを注意深く見直せば消すことができますし、そもそもエラーを消さない限りは新しい実行ファイル(SWF)が作成されないので深刻な問題にはなりません。問題なのはランタイムエラーで、アプリケーションが予期しない動作をする原因になってしまうことがあります。

アプリケーションの制作者とユーザーは違う人間

 多くの場合、アプリケーションの制作者とユーザーは違う人間です。制作者が予期しなかった操作をユーザーがしてしまうことも十分考えられます。そういったときにおかしな動きになったり、無反応になってしまっては、そのアプリケーションはもう使ってもらえないかもしれません。

図1 ユーザーの心は移ろいやすいもの…… 図1 ユーザーの心は移ろいやすいもの……

 エラー処理とは、ランタイムエラーが発生した際、アプリケーションを回復させたり、最悪の場合でもユーザーに対してメッセージを表示することもできるようにする処理のことなのです。

具体的にエラー処理はどうやるの?

 具体的なエラー処理の書き方は、以下のようになります。

クラスの継承の構文
try {
    エラーが発生する可能性のある処理
}
catch (error:【エラーの型】) {
    エラーが発生したときに行う処理
}
finally {
    最後に必ず実行される処理(必要に応じて記述)
}

try

 エラーが発生する可能性のある処理を{ }で囲みます。エラーが発生した場合、対応するcatch文を探しにいきます。

catch(error:【エラーの型】)

 エラーが発生した際に行う処理を括弧内に記述します。発生したエラーの型と括弧内に書かれたエラーの型が合致した場合に実行されます。catchステートメントは複数記述できます

finally

 エラーが発生するしないにかかわらず必ず最後に実行したい処理を記述するときに使用します。そういった処理がなければ、記述する必要はありません。

じゃ、ちょっと使ってみようか

 簡単なサンプルを作ってみたいと思います。以下のコードを入力し、実行してみてください。

Lesson7_1.as
package {

//import文は省略

public class Lesson7_1 extends Sprite {
    public function Lesson7_1() {
        test();
    }

    private function test():void {
        var mySound:Sound = new Sound();
        mySound.close();
    }
}
}

 実行すると、図2のようなエラーの画面が表示されましたか?

図2 Lesson7_1.asの実行結果 図2 Lesson7_1.asの実行結果

Flash Playerには、標準版とデバッグ版がある

 図2の画面が表示されない方もいるかもしれません。Flash Playerには標準版とデバッグ版があり、一般的に使われている標準版のFlash Playerではエラーが発生してもユーザーに伝えることはありません。エラーが表示されてもユーザーが解決できるとも限らないし、かえって混乱させるもとになってしまうためです。そのため、エラーが発生していても気付かないままで、予期しない動作をすることも考えられます。

 そうならないためにも制作者は、デバッグ版のFlash Playerを使って、しっかりエラー処理をしておく必要があるでしょう。デバッグ版のFlash Playerがない方は、こちらのページからダウンロードしてください。

図3 デバッグ版のFlash Playerのダウンロード 図3 デバッグ版のFlash Playerのダウンロード

 では、先ほどのランタイムエラーはなぜ起きたのでしょうか? 次ページで説明し、さらにthrow句やエラークラスの種類について解説します。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。