約 61,963 件
https://w.atwiki.jp/saikyoumousou5/pages/1108.html
【妄想属性】 脳内補完 【作品名】 ジョジョの奇妙な冒険 【名前】 ジョルノ・ジョバーナ 【属性】 ギャングのボス 【大きさ】【攻撃力】【防御力】【素早さ】 一般男子中学生よりやや上 【ゴールド・エクスペリエンス・レクイエム】 ジョルノに危害、不利益などを与える効果を持つもの全てを無効化する能力の擬人化存在 この無効化は対象の大きさ、能力、性質、素早さ、時間などと無関係に効果を発揮し、メタ能力や無効能力、コピー能力などでさえ例外なく無効化する またGERはジョルノに敵対する物を攻撃し、その対象の防御効果や移動効果などの能力を無効として例外なく攻撃は相手に届き効果を発揮する GERに攻撃された対象は死(無生物やはじめから死んでいるものは消滅、非存在は存在に干渉不可となる)という方向性を与え、この死に抵抗、回避する能力も無効化される 攻撃された対象は以降、いかなる行動も結果に結びつくことなく無効化されなかったことにされる(死という結果ですら例外ではなく無効化される) 【長所】 GERの効果でジョルノは不利益を被らない 【短所】 無限に死に続けることは懲罰的意味しかない ◆考察記録--------------------------------------------------------------------------------------------------------------------------- 668 名前:格無しさん 投稿日:2006/08/13(日) 02 24 00 ジョルノ・ジョバーナ: レイヴンには例外がないのの例外で対処されて負けるが、 効果を無効化するので能力非依存メタの壁よりは上か 883 名前:格無しさん 投稿日:2006/08/24(木) 18 36 38 ジョルノ・ジョバーナ考察 よく見ると攻撃は非能力なら防げるので多少弱体化するか? 能力非依存メタの壁から。 △魔王(最強勇者シリーズ) 倒せないが倒されない。 △終止符を打つ者 倒せないが倒されない。 ○*4白騎士~黄金騎士ガロ 能力なのでいける。 △真実を司る存在 倒せないが倒されない。 ○すぺりおる☆ひよりん 能力なので勝ち。 △至上の神仏 倒せないが倒されない。 ×ウィンダム GERやその防御能力ごと破壊されたら無理だと思われる。 ×野村ちづ子 能力封印負けか。 △アブソリュートノエイン 倒せないが倒されない。 ×渡良瀬準 テンプレいじれるので無理か? ×マイケル・ウィルソン 同上。 至上の神仏=ジョルノ・ジョバーナ>すぺりおる☆ひよりん
https://w.atwiki.jp/yamiden_us/pages/283.html
Item名 画像 AB 重量 価格 耐久 攻撃力 付加効果 入手場所 編集 Item名 画像 AB 重量 価格 耐久 攻撃力 付加効果 入手場所 編集 Sphere attachref 1 5 300000 8000000 S4~20L106~130 +2Str-1Int-1Wis+20%MR全てのSpellが1行になる(※一部例外有り) Asilon 編集 Shaine Sphere attachref 8 6 560000 8000000 S64~20L106~130 +100HP+1Str-2Int-2Wis+1Dam+20%MR全てのSpellが1行になる(※一部例外有り) Asilon 編集 Maron Sphere attachref 15 7 880000 8000000 S4~20L106~130 +1000MP-3AC+1Hit+1Dam+1Str-1Int-2Wis+20%MR全てのSpellが1行になる(※一部例外有り) Noam 編集 Chernol Sphere attachref 22 8 1032000 8000000 S4~20L106~130 +2000MP-3AC+1Hit+1Dam+1Str-1Int-2Wiz+20%MR全てのSpellが1行になる(※一部例外有り) Noam 編集 Veltain Staff attachref 15 5 345000(非売品) 550000 S4~20L6~30 +100HP+1100MP+1Int+1Wis+1Con+20%MR全てのSpell-2行 Hwarone Armory製造 編集 Andor Staff attachref 30 5 345000(非売品) 550000 S4~20L6~30 +1500MP+2Int+2Wis+1Con+20%MR全てのSpell-2行 AndorAnt Queen 編集 edit
https://w.atwiki.jp/dojinshi/pages/19.html
Q 同人誌ってどれぐらい売れるものなの? A 殆どの同人誌製作者は同人誌売ることができません。「同人誌は儲かる」という認識は嘘です。 赤字の製作者が殆どです。同人誌の売り上げで飯を食っている製作者なんて1%以下です。 コミケはあくまで「趣味の場」であり、売れなくて当たり前なのです。 ガンガン売れる同人誌製作者は例外的存在です。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Q その例外的製作者の中でもトップクラスはどれぐらい売れてるの? A コミケ会場のトップクラス製作者が売る冊数は最大で10000冊前後です。(書店委託含まず) これは一種類あたりの話しなので、複数の品目を用意する場合は20000~40000品を1日で売ることもあります。 但しこのような製作者は全体の0.0001%程度です。90%以上の製作者の本は100冊も売れません。 Q そのトップクラス製作者がコミケで売り上げる金額っていくらよ? A トップクラスで1000万前後です。但しこのような存在は全体の0.0001%程度です。 全体の90%以上の製作者は1万円以下の売り上げで大赤字を出しますが、趣味なので問題はありません。 同人誌活動は楽しければよいのです。売れてる製作者なんて例外です。 その一部例外的に売れるトップクラスの製作者の同人誌に関しては馬鹿みたいに売れます。 Q コミケ全体の1回開催で何円ぐらいのお金が動くの? はっきりとした金額は不明ですが、数十億かと思われます。 この数十億円のうちの95%前後を1%の売れまくるトップクラス製作者が搾取しています。 芸能界と同じく、評価が偏りがちな世界です。皆が豊かなわけではありません。 " 引用記事
https://w.atwiki.jp/sfrontier/pages/70.html
Java Book_Java 作成日 2007/11/05 H.Naito 更新日 2007/11/14 H.Naito この本の目的とするところ 第1章 はじめに 第2章 オブジェクトの生成と消滅項目1 コンストラクタの代わりに static ファクトリーメソッドの提供を検討する 項目2 private のコンストラクタでシングルトン特性を強制する 項目3 private のコンストラクタでインスタンス化不可能を強制する 項目4 重複したオブジェクトを生成するのを避ける 項目5 廃れたオブジェクト参照を取り除く 項目6 ファイナライザを避ける 第3章 すべてのオブジェクトに共通するメソッド項目7 equals をオーバーライドする時は一般契約に従う 項目8 equals をオーバーライドする時は、常に hashCode をオーバーライドする 項目9 toString を常にオーバーライドする 項目10 clone を注意してオーバーライドする 項目11 Comparable を実装することを検討する 第4章 クラスとインタフェース項目12 クラスとメンバーへのアクセス可能性を最小限にする 項目13 不変性を選ぶ 項目14 継承よりコンポジションを選ぶ 項目15 継承のために設計および文章化する、でなければ継承を禁止する 項目16 抽象クラスよりインタフェースを選ぶ 項目17 型を定義するためだけにインタフェースを使用する 項目18 非 static のメンバークラスより static のメンバークラスを選ぶ 第5章 C 構文に対する置き換え項目19 構造体をクラスで置き換える 項目20 共用体クラス階層で置き換える 項目21 enum 構文をクラスで置き換える 項目22 関数ポインタをクラスとインタフェースで置き換える 第6章 メソッド項目23 パラメータ正当性を検査する 項目24 必要な場合には、防御的にコピーする 項目25 メソッドのシグニチャを注意深く設計する 項目26 オーバーロードを注意して使用する 項目27 null ではなく、長さゼロ配列を返す 項目28 すべての公開API要素に対してドキュメントコメントを書く 第7章 プログラミング一般項目 29 ローカル変数のスコープを最小限にする 項目 30 ライブラリーを知り、ライブラリーを使う 項目 31 正確な答えが必要ならば、float と double を避ける 項目32 他の型が適切な場合は、文字列を避ける 項目33 文字列結合のパフォーマンスに用心する 項目34 インタフェースでオブジェクトを参照する 項目35 リフレクションよりインタフェースを選ぶ 項目36 ネイティブメソッドを注意して使用する 項目37 注意して最適化する 項目38 一般的に受け入れられている命名規約を守る 第8章 例外項目39 例外的状態にだけ例外を使用する 項目40 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する 項目41 チェックされる例外を不必要に使用するのを避ける 項目42 標準例外を使用する 項目43 抽象概念に適した例外をスローする 項目44 各メソッドがスローするすべての例外を文章化する 項目45 詳細メッセージにエラー記録情報を含める 項目46 エラーアトミック性に努める 項目47 例外を無視しない 第9章 スレッド項目48 共有された可変データへのアクセスを同期する 項目49 過剰な同期は避ける 項目50 ループの外で決して wait を呼び出さない 項目51 スレッドスケジューラに依存しない 項目52 スレッド安全性を文章化する 項目53 スレッドグループを避ける 第10章 シリアライズ項目54 Serializable を注意して実装する 項目55 カスタムシリアライズ形式を使用することを検討する 項目56 防御的に readObject を書く 項目57 必要な時には readResolve メソッドを提供する 勉強の成果!? ( メモ ) を残します。 by 内藤 この本の目的とするところ 基本的パターンの忠実な遵守 不必要な装飾を持たない 簡潔性と調和 ようするに、簡潔なコードを書いて、自分と他人にわかりやすく、メンテしやすいコードを書くための注意点を網羅したものだと予想しています。 # まだ全部読んでないので、断言できません。 ( 2007/11/05 現在 ) Java プログラマ教育のための教材として使われているようですね。 # 例えば、新人 Java プログラマに対して、この本読んで自分のコードを修正しろ!! みたいな・・・ 第1章 はじめに 第2章 オブジェクトの生成と消滅 項目1 コンストラクタの代わりに static ファクトリーメソッドの提供を検討する 項目2 private のコンストラクタでシングルトン特性を強制する 項目3 private のコンストラクタでインスタンス化不可能を強制する 項目4 重複したオブジェクトを生成するのを避ける 項目5 廃れたオブジェクト参照を取り除く 項目6 ファイナライザを避ける 第3章 すべてのオブジェクトに共通するメソッド 項目7 equals をオーバーライドする時は一般契約に従う 項目8 equals をオーバーライドする時は、常に hashCode をオーバーライドする 項目9 toString を常にオーバーライドする 項目10 clone を注意してオーバーライドする 項目11 Comparable を実装することを検討する 第4章 クラスとインタフェース 項目12 クラスとメンバーへのアクセス可能性を最小限にする 項目13 不変性を選ぶ 項目14 継承よりコンポジションを選ぶ 項目15 継承のために設計および文章化する、でなければ継承を禁止する 項目16 抽象クラスよりインタフェースを選ぶ Java は複数の実装を許す型を定義するためにインタフェースと抽象クラスを提供している インタフェース メソッドに対する実装が許されていない 抽象クラス メソッドに対する実装を含むことが許されている 実装するクラスは、抽象クラスのサブクラスでなくてはならない 一般に、既存のクラスに対して抽象クラスを設定することはできない 2つのクラスに同じ抽象クラスを継承させたければ、それぞれのクラスの祖先になるように抽象クラスを継承させる必要がある インタフェースは、階層を持たない型フレームワークを構築することを可能にしている 発展のしやすさが、柔軟性と能力よりも重量だと考えられる場合には、抽象クラスを使用する 項目17 型を定義するためだけにインタフェースを使用する 項目18 非 static のメンバークラスより static のメンバークラスを選ぶ 第5章 C 構文に対する置き換え 項目19 構造体をクラスで置き換える 項目20 共用体クラス階層で置き換える 項目21 enum 構文をクラスで置き換える 項目22 関数ポインタをクラスとインタフェースで置き換える 第6章 メソッド 項目23 パラメータ正当性を検査する 項目24 必要な場合には、防御的にコピーする 項目25 メソッドのシグニチャを注意深く設計する 項目26 オーバーロードを注意して使用する 項目27 null ではなく、長さゼロ配列を返す 項目28 すべての公開API要素に対してドキュメントコメントを書く 第7章 プログラミング一般 項目 29 ローカル変数のスコープを最小限にする ローカル変数のスコープを最小限にする最も強力な技法は、ローカル変数が初めて使用されたときに宣言することです。 ループ変数の内容がループした後に必要ない場合には、while ループより for ループを選んでください。 ほとんどすべてのローカル変数宣言は、初期化子を含んでいるべきです。 → 変数を合理的に初期化するのに十分な情報がなければ、情報が得られるまで宣言を先送りにするべきです。 項目 30 ライブラリーを知り、ライブラリーを使う 標準ライブラリを使用することで、それを書いた専門家の知識と、それをあなたよりも前に使用した人々の経験を利用することになります。 すべてのプログラマは、java.lang、java.util の内容とある程度 java.io の内容を知っているべきです。 項目 31 正確な答えが必要ならば、float と double を避ける float 型、double 型 は、正確な答えを必要とする計算に使用しない ( 特に金銭計算 には適していない ) float 型 と double 型は主に科学計算 と工学計算 のために設計され、2進浮動小数点算術を行う 2進浮動小数点算術は、広い範囲の大きさに対して正確な近似値 をすばやく行うために設計されている float 型、double 型を使用しないで計算する方法は 2つ BigDecimal を使用する [ 利点 ] システムに小数点を把握させることができる( 丸め処理を完全に制御でき、且つ、8種類の丸めモードを選択できる ) [ 欠点 ] 基本データ型ではないので、扱いが多少不便。また、基本データ型ではないので(?)、処理が遅い。 [ API仕様書 - 1.4 ] http //sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/math/BigDecimal.html [ Sample ] http //www.nextindex.net/java/class/BigDecimal.html [ Sample ] http //msugai.fc2web.com/java/class/DecimalTips.html int 型 もしくは long 型 を使用する [ 利点 ] 基本データ型なので高パフォーマンスを期待できる。 [ 欠点 ] 9桁を超えたら int を使用できない。また、18桁を超えたら long を使用できない。18桁を超えたら BigDecimal を使用しなければならない。 項目32 他の型が適切な場合は、文字列を避ける 要するに、[はい/いいえ] なら boolean でもつとか、できる限り String 型で値を持ちましょうねという話らしいが、いまいち理解しきれない・・・ 項目33 文字列結合のパフォーマンスに用心する 文字列の連結に文字列連結演算子(+) をできる限り使用しない 理由は、処理時間が遅いから。( n個の文字列を連結するのに、文字列結合演算子を繰り返し使用すると、nに関して2次の時間を必要とする ) 文字列は不変の要素として扱われるので、結果的に、連結する要素のコピーを行うことになるというのが、そのからくり。 文字列連結する場合は、String の代わりに StringBuffer を使用し、append メソッドを使用する。 項目34 インタフェースでオブジェクトを参照する インタフェースを使用してプログラムの柔軟性を高めなさいという話・・・だが、よく理解できない。 [ Sample ] List subscribers = new Vector(); 項目35 リフレクションよりインタフェースを選ぶ java.lang.reflect に関する記述。reflection そのものがよくわからないので、後で勉強しなおす。 項目36 ネイティブメソッドを注意して使用する ネイティブメソッドとは? C / C++ ( native programming language )などで書かれた特別なメソッド。Java Native Interface( JNI ) を使用して呼び出すことが可能。 ネイティブメソッドの主な用途は? プラットフォーム固有の機構( レジストリ / ファイルロック )へのアクセスを提供する( → レジストリ操作は Java1.4 から提供されている ) 古いデータへのアクセスを提供している古いコードのライブラリへのアクセスを提供する( → ものによっては、Java で書き換えた方が良い場合もある ) パフォーマンスが重要な部分の処理を代行する( → Java1.3 以降は推奨していない ) ネイティブメソッドを使用するデメリット ネイティブ言語は safe ではないので、メモリ破壊の影響を受ける場合がある。 ネイティブ言語は、プラットフォーム依存なので、アプリケーションを自由にプラットフォーム間で移動できない。 ネイティブ言語は、書くのが難しいし、読むのも難しい ( ← そうかなあ ) 項目37 注意して最適化する 時期尚早の最適化は、良くなるよりは害になりやすい。 早いプログラムよりも、良いプログラムを書くように努めるべき。( 良いプログラムはカプセル化に成功しているので、変更点以外に影響を与えることない。 ) 良いプログラムを書けば、結果としてスピードが得られる。 設計の段階からパフォーマンスを意識した構造を構築する。API、通信レベルのプロトコル、永続データ形式 などの設計要素を検討するときは、特に注意したい。 良い API 設計は、良いパフォーマンスと矛盾しない場合が一般的。 項目38 一般的に受け入れられている命名規約を守る Java プラットフォームには、確立した命名規約の集まりがあり、その多くは『Java言語仕様』に含まれている。 パッケージ名の命名規則 ピリオドで区切られた要素を持ち、階層的であるべき。 区切られた要素は、小文字のアルファベット文字と稀に数字から構成されるべき。 組織外で使用されるパッケージの名前は、トップレベルのドメインを最初にした、その組織のインターネットドメイン名で始まるべき。( ex. com.sun ) java / javax で始まる標準ライブラリとオプションパッケージは、この規則に対する例外。( ユーザは java / javax で始まるパッケージを作成してはいけない ) 詳細な規則については、『Java言語仕様』を参照のこと。 パッケージ名の残りは、パッケージに記述する1つ以上の要素( 一般的に 8文字以下の1単語/1省略形 )から構成されるべき。 意味を持った省略形は推奨されている ( utilities → util、Abstract Window Toolkit → awt ) クラス名 / インタフェース名の命名規則 1つ以上の大文字から始まる単語から構成されるべき( ex. TimerTask ) 省略系は避ける ( 例外. 頭文字、min/max などの一般的な省略形 ) インタフェース名は、-able や -ible で終わる形容詞で命名される。( ex.Runnable、Accessible ) なんらかの処理を行うメソッドは、一般に動詞/動名詞で命名される。 boolean 値を返すメソッドは、たいてい is で始まり、その後に形容詞/名詞(句) が続く。( ex. isDigit、isEmpty ) メソッド名 / フィールド名の命名規則 基本は、クラス名 / インタフェース名と同じ規則。ただし、最初の文字は小文字から始める。頭文字の場合は、頭文字部分を全部小文字にする。 定数フィールドは、1つ以上の大文字から構成され、アンダースコアで区切られる。定数フィールドだけが、唯一アンダースコアの使用を推奨している。 オブジェクト方を変換し、別の型の無関係なオブジェクトに返すメソッドは、たいてい toType と呼ばれる。 ( ex. toString、toArray ) レシーバーオブジェクトの型と異なる型を持つビューを返すメソッドは、たいていは asType と呼ばれる。 ( ex. asList ) メソッドが呼び出されたオブジェクトと同じ値を持つ基本データを返すメソッドは、たいてい typeValue と呼ばれる。 ( ex. intValue ) static ファクトリーに対する共通の名前は、valueOf と getInstance 。 第8章 例外 項目39 例外的状態にだけ例外を使用する 項目40 回復可能な状態にはチェックされる例外を、プログラミングエラーには実行時例外を使用する 項目41 チェックされる例外を不必要に使用するのを避ける 項目42 標準例外を使用する 項目43 抽象概念に適した例外をスローする 項目44 各メソッドがスローするすべての例外を文章化する 項目45 詳細メッセージにエラー記録情報を含める 項目46 エラーアトミック性に努める 項目47 例外を無視しない 第9章 スレッド 項目48 共有された可変データへのアクセスを同期する 項目49 過剰な同期は避ける 項目50 ループの外で決して wait を呼び出さない 項目51 スレッドスケジューラに依存しない 項目52 スレッド安全性を文章化する 項目53 スレッドグループを避ける 第10章 シリアライズ 項目54 Serializable を注意して実装する 項目55 カスタムシリアライズ形式を使用することを検討する 項目56 防御的に readObject を書く 項目57 必要な時には readResolve メソッドを提供する
https://w.atwiki.jp/startruby/pages/19.html
RSpecのここがすごい! RSpec? Rubyには、Test Unitがあるし、普通にUnitTestが書けるよね?なんで?? まずはこれを見てくれ require lru_cache describe LruCache do describe "を初期化する場合" do it "は、サイズを渡したら、そのサイズのキャッシュができる." do targ = LruCache.new(10) targ.limit.should == 10 end it "もし、サイズにマイナス値を渡したら、例外が発生する." do lambda{ LruCache.new(-1) }.should raise_error(ArgumentError) end it "もし、サイズにnilを渡したら、例外が発生する." do lambda{ LruCache.new(nil) }.should raise_error(ArgumentError) end it "もし、サイズに数値以外を渡したら、例外が発生する." do lambda{ LruCache.new("a") }.should raise_error(ArgumentError) end end end まず LruCacheに関する記述(describe)だよ、と宣言してそのうちの「初期化をする場合」のテストだよ、と宣言して「サイズを渡したら、そのサイズのキャッシュができる」べきだと、通常できることを説明していてその内容でtarg.limitは10であるべき(should)と明示して 「サイズにマイナス値を渡したら、例外が発生する」べきだと、引数がおかしい場合に起こることを説明していてその内容でArgumentErrorというerrorが発生するべきと明示して 「サイズにnilを渡したら、例外が発生する」べきだと、引数がおかしい場合に起こることを説明していてその内容でArgumentErrorというerrorが発生するべきと明示して 「サイズに数値以外を渡したら、例外が発生する」べきだと、引数がおかしい場合に起こることを説明していてその内容でArgumentErrorというerrorが発生するべきと明示して これを見るだけで、LruCacheが「何をするプログラムなのか」が見えてくる! しかも、Test Unit(JavaのJUnit4.1以前相当)よりも、より記述が簡便で読みやすい! UnitTestの次の流れ-より人が読みやすいテストへ UnitTestが広まるなかで、認識されていったこと UnitTestは、ホワイトボックス・テスト(テスト対象の全コードを理解したうえでのテスト)ではない。 UnitTestでテストしているのは、テスト対象のクラスとメソッドのインタフェースだ。 つまりは、ブラックボックス・テスト、ステートボックス・テストに他ならない。 インタフェースの肝とは、インプットとアウトプットが何であるかをしっかり確立すること。 つまりは、そのインタフェースの振る舞いをしっかり確立すること。 そうだ!振る舞いをテストするんだ!! - Behavior Test という認識へ。 だったら、振る舞いをもっとわかりやすく記述できないかな? - Java の場合 JUnit4.5 assertThat() の登場 - Ruby の場合 RSpec の登場 いずれでも、根底にある思想は「コードは徹頭徹尾人が読むためにある存在」だということ。
https://w.atwiki.jp/kof2002/pages/55.html
受け身(ダウンする直前にAB同時押し)について 以前の作品ではダウン回避と呼ばれていた動作。受け身できるダウンとできないダウンがある。 動作中は完全無敵で、打撃はもちろん、投げも食らわない。 しかし、動作終了と同時に投げられ判定が発生するため、相手の投げ間合いにいる場合は分の悪い読み合いを強要されることになってしまう。よって、端付近に追い詰められた場合はもちろん、端以外でも相手が受け身復帰を狙えるような状況ではあえて受け身を取らないことも大事。 起き上がり直後の準立ち状態 起き上がった直後にレバーを屈みに入れていても数フレーム食らい判定が高くなってしまう。 しかし、相手が攻撃を出していて屈みガードにレバーを入れていれば、リバーサルで屈みガードの食らい判定の高さになる。 起き上がり寸前の準立ち状態 1つ上とまぎらわしいですが、全然違うものです。 受け身を取らない起き上がりにおいて、動作開始になる直前の1フレームのみなぜか立ち状態になってしまいます。 この状態は通常の打撃技は当たらず、投げられ判定もないため基本的には問題ないのですが、なぜか地震判定の技のみ当たってしまいます。 一応、この立ち状態は特殊技と必殺技でキャンセルできるため、動作開始から屈み状態になる特殊技と動作開始と同時に相手をつかむタイプのコマンド投げと、動作開始と同時に空中判定になる必殺技を出すことで回避可能になります。 ヒットストップについて 原則:11F、お互いにかかる。ヒットストップ中は両者全身無敵 例外1:地上弱攻撃のヒットストップは両者7Fのみ 例外2:飛び道具はヒットorガードさせられた側のみにヒットストップがかかる 例外3:ヒットストップの存在しない技がある(例:キムの近C1段目) 例外4:両者にかかるヒットストップの長さが違う技がある(例:マチュアの遠B2段目) 例外5:キムの飛翔脚をガードされた場合、ヒットストップがかかるのはガード側のみ 同時押し猶予時間について 同時押しの操作が多いためか、ボタンを押してから各行動を起こすまで若干のタイムラグがあります。 通常技:ボタンを押した後5F目から動作開始 特殊技:ボタンを押した後5F目から動作開始 通常投げ:ボタンを押した後6Fから相手をつかむ 必殺技:ボタンを押した後、1F目でゲージ増加→2F目から動作開始 緊急回避:ボタンを押した後、1F目から動作開始(ただし、後転は事前に4に入れておく必要あり) MAX発動:ボタンを押したフレームでMAX状態になり、1F目からMAX発動モーションになる 立ちC+D:ボタンを押した後、1F目から動作開始
https://w.atwiki.jp/fdeoo6/pages/32.html
加圧式固有の規格 加圧用ガス容器付設構造に因る分類作動封板 容器弁 圧送ガスの種類小型通常 2酸化炭素 例外窒素 2酸化炭素・窒素混合 大型通常 窒素 例外 2酸化炭素 内容積における制約100[cm3]以下の内容積表示高圧ガス保安法の規制対象外における表示製造番号 総質量 ガスの種類 容器記号 鑑定合格印 100[cm3]超の内容積充填流体別の彩色高圧ガス保安法の規制対象における表示2酸化炭素 表面積の1/2以上を緑色に因り塗装 窒素 表面積の1/2以上を灰色に因り塗装 表示100[cm3]以下の内容積に準拠 質量に対しバルブを除く重量を表示内容積[l] 圧力 耐圧試験圧力に対しTPを打刻 最高充填圧力FPを打刻 各圧力に対しM[Pa]を併せて打刻 バルブハンドル式バルブに対し1/4回転に因り全開放を伴う構造・機能 圧力調整器付設対象 窒素に因る圧送を伴う大型加圧式消火器 所要機能・性能圧力検出にて圧力調整範囲に対し緑色にて彩色 所要圧力迄減圧 運搬・使用方法固有の規格 使用済の判定部品付設対象下記の開放式を除く手提式消火器2酸化炭素消火器 ハロン1301消火器 ガス加圧式粉末消火器 表示使用に対し自動的に作動 使用済の判定可能な部品の付設 例外下記に対し付設不要指示圧力計の付設を伴う蓄圧式消火器 バルブ不要の単位消火毎に全量放射を伴う消火器 ノズル種類開閉バルブ式 消火操作に因り放出を制御 開放式 消火操作に対し全量を放出 操作制約 開閉・切換式の付設禁止 例外車載式消火器 開閉・切換式の採択が可能 据置・背負式消火器 開閉式の採択が可能 操作制約参考 +... blankimgプラグインエラー:ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。
https://w.atwiki.jp/toriko-database/pages/2465.html
名前 マイノリティワールド 読み仮名 - 概要 平方根の法則 マイノリティワールドとは? 関連項目 概要 一龍の必殺技。 一龍との戦闘の中で三虎もこの技を習得し、現在では完全に使いこなしている。 平方根の法則に基づき、少数派原子を自在に操るというもの。 平方根の法則 100個の原子がある場合、その平方根をとった10個ほどの原子は例外的な振る舞いをするという法則。 仮に100個の原子からできた生物を空に放ると構成原子の90個は重力にのっとって自由落下するが、残りの10個は上昇しようとしたり空中にとどまったりする。 すなわち、100個の原子でできた生命体は10%の誤差率で不正確さをこうむることになる。 100万個の原子なら例外的な原子は1000個(0.1%)、1億個の原子なら1万個(0.0001%)…と、不正確さは原子数が上がるにつれ減少し、動作の精度が高まっていく。 人間の体は膨大な数の原子からできているため、普通は例外的な少数派原子の影響を受けることはない。 マイノリティワールドとは? それら例外的な少数派原子を支配することで、 重力に逆らう原子を多数派にして空を飛んだり、傷を一瞬で治したり、誤差率を大きくして敵の動きの精度を下げることができる。 時間が経って少数派原子の支配が高まっていくと少数派の影響は体を機能させている臓器にまで及ぶ。 肺は酸素を取り込まなくなり、肝臓はグリコーゲンの合成を止めて解毒を停止。 心筋は止まり、心臓はポンプの働きを止める。血液は逆流し、心臓や血管は破裂。 脳は神経を介した情報伝達を停止しすべての生を維持するシステムはその逆の「死」に向かい始める。 関連項目 用語一覧 一龍 三虎
https://w.atwiki.jp/saikyoumousou5/pages/860.html
【名前】悪魔の寄生虫 【属性】トラップ 【大きさ】1cm 【攻撃力】無し 【防御力】無し 【素早さ】無し 【特殊能力】自滅:文字通り自滅する。ただの自滅能力。常時発動だが。 強制被コピー:コピー系の能力・設定などには、それらが及ぼす範囲の如何に限らず勝手に自滅能力をコピーさせる。 自滅能力は能力打ち消しでは消去不可能である。 常時永続発動。同様の能力・設定などを持つ、や略奪(奪い取る)、 相手などを(に)寄生・同化・内包・支配するなどの意味に当てはまる場合も同じ。 ただし、オリジナルの能力・設定などが範囲に関わらず全能以上であるなら例外。 当てはまるかは自分で判断するが、考察人らから「これはダメだろ」と判断されれば例外扱いとなる。 例外となった能力・設定などには一切これは効かない。 【長所】コピー系の結構大半が勝てない。 【短所】でも自分は勝てない。 悪魔の寄生虫考察 コピーは自分にとって何の役にも立たないな。絶対負と同じ。
https://w.atwiki.jp/0x0b/pages/97.html
Mozilla JavaScriptの続き 文ブロック文(Block Statement) 条件文(Conditional Statements) ループ文(Loop Statements) for文 do...while 文 while 文 label 文 break 文 continue 文 オブジェクト操作文(Object Manipulation Statements) コメント 例外処理文(Exception Handling Statements) throw 文 try...catch 文 文 ブロック文(Block Statement) ブロック文は文をグループ化するのに用います。ブロックは波括弧のペアで区切ります。 { statement_1 statement_2 . . . statement_n } 例 ブロック文は一般に制御フロー文(例:if、for、while)で用いられます。 while (x 10) { x++; } ここでは { x++; } がブロック文です。 重要:JavaScript にはブロックスコープがありません。ブロックを用いて導入された変数のスコープは、そのブロックがある関数やスクリプトになります。変数をセットする影響はそのブロックを越えて持続されます。つまり、ブロック文はスコープを持ち込まないということです。独立したブロックも構文的には正しいのですが、C や Java のブロックで果たされるような機能を期待しているのであれば、そのような機能は果たされないため、JavaScript で独立したブロックを使う必要はありません。 var x = 1; { var x = 2; } alert(x); // 2 を出力 ブロック内の var x 文はブロック前の var x 文と同じスコープ内であるため、この例では 2 が出力されます。C や Java では相当のコードは 1 を出力します。 条件文(Conditional Statements) 条件文は指定した条件が true ならば実行されるコマンドのセットです。JavaScript は if...else と switch の 2 つの条件文をサポートしています。 if...else 文 ある論理条件が true ならばある文を実行したいというときには if 文を使用してください。オプション的な else 節を使用すると、条件が false の場合にある文を実行することができます。if 文は次のように使用します。 if (condition) statement_1 [else statement_2] condition には true か false に評価される式が入ります。condition が true に評価された場合は statement_1 が実行され、そうでない場合は statement_2 が実行されます。statement_1 と statement_2 はどんな文でもかまいません。if 文をさらに入れ子にすることもできます。 次のように else if を使用して文を重ねることで複数の条件を順々にテストさせることができます。 if (condition) statement_1 [else if (condition_2) statement_2] ... [else if (condition_n_1) statement_n_1] [else statement_n] 複数の文を実行させるには、ブロック文 ({ ... }) を使用してその文をグループ化してください。一般に常にブロック文を使用するのが優れた方法です。特に if 文を入れ子にしたコードでは有効です。 if (condition) { statements_1 } else { statements_2 } 条件式では単純な代入は使わないようにしてください。コードをちらっと見たときに、代入を等価条件と見間違えるおそれがあるためです。例えば次のようなコードは使用しないでください。 if (x = y) { /* 正しいことをする */ } 条件式で代入を使う必要がある場合に一般的な方法として代入式をさらに括弧でくくるというものがあります。 if ((x = y)) { /* 正しいことをする */ } プリミティブな真偽値の true と false を Boolean オブジェクトの true や false という値と混同しないでください。undefined や、null、0、NaN、空文字列 ("") でないどんな値も、そして false という値を持つ Boolean オブジェクトを含むどんなオブジェクトも、条件文に通されると true に評価されます。 var b = new Boolean(false); if (b) // この条件は true に評価される 例 次の例では、関数 checkData は Text オブジェクトに含まれている文字数が 3 の場合に true を返し、そうでない場合はアラートを表示して false を返します。 function checkData() { if (document.form1.threeChar.value.length == 3) { return true; } else { alert("Enter exactly three characters. " + document.form1.threeChar.value + " is not valid."); return false; } } switch 文 switch 文を使うと、プログラムは式を実行し、式の値を case ラベルにマッチさせます。マッチすると、プログラムは結びつけられた文を実行します。switch 文は次のように使用します。 switch (expression) { case label_1 statements_1 [break;] case label_2 statements_2 [break;] ... default statements_def [break;] } プログラムはまず式の値にマッチしたラベルを持つ case 節を探します。そしてコントロールをその節に移し、結びつけられた文を実行します。マッチしたラベルがない場合、プログラムはオプション的な default 節を探し、あった場合はその節にコントロールを移し、結びつけられた文を実行します。default 節がなかった場合、プログラムは switch 文の後に続く文を実行し続けます。慣例により、default 節は最後の節にします。しかしそうしなければいけないわけではありません。 各 case 節に結びつけられたオプション的な break 文は、一度マッチした文を実行したら switch から抜け、switch に続く文を実行し続けることを確実にするものです。break を省略した場合、その switch 文における次の文を実行し続けます。 例 次の例では、fruittype が "Bananas" に評価された場合、"Bananas" という場合にマッチし、それに結びつけられた文が実行されます。break に出くわすとプログラムは switch から抜け、switch の後に続く文を実行します。break を省略すると "Cherries" という場合の文も実行されます。 switch (fruittype) { case "Oranges" document.write("Oranges are $0.59 a pound. br "); break; case "Apples" document.write("Apples are $0.32 a pound. br "); break; case "Bananas" document.write("Bananas are $0.48 a pound. br "); break; case "Cherries" document.write("Cherries are $3.00 a pound. br "); break; case "Mangoes" case "Papayas" document.write("Mangoes and papayas are $2.79 a pound. br "); break; default document.write("Sorry, we are out of " + fruittype + ". br "); } document.write("Is there anything else you'd like? br "); ループ文(Loop Statements) ループは指定した条件が満たされている限り繰り返し実行されるコマンドのセットです。JavaScript は、label はもちろん、for、do while、while といったループ文をサポートしています(label 自体はループ文ではありませんが、これらの文とともに頻繁に使用されます)。さらに、break および continue 文をループ文の中で使うことができます。 さらに for...in 文も文を繰り返し実行しますが、これはオブジェクトの操作に使用します。オブジェクト操作文 をご覧ください。 ループ文は以下のとおりです。 for 文 do...while 文 while 文 label 文 break 文 continue 文 for文 for ループは指定した条件が false に評価されるまで繰り返します。JavaScript の for ループは Java や C の for ループに似ています。for 文は次のように使用します。 for ([initialExpression]; [condition]; [incrementExpression]) statement for ループを実行すると以下のことが起こります。 1.初期化式 initialExpression があれば実行されます。この式は通常、1 つかそれ以上のループカウンタを初期化しますが、構文的にはある程度複雑な式も指定できます。また、この式は変数を宣言することもできます。 2.condition 式が評価されます。condition の値が true であればループ文が実行されます。condition が false の場合は for ループは終了します。condition 式が完全に省略されている場合、条件は true であると仮定されます。 3.statement が実行されます。複数の式を実行するにはブロック文 ({ ... }) を使用して文をグループ化してください。 4.更新式 incrementExpression があれば実行されます。そしてコントロールがステップ 2 に戻ります。 例 次の関数には、スクローリングリスト(複数選択できる Select オブジェクト)で選択されたオプションの数を数える for 文が含まれています。for 文では変数 i が宣言され、それが 0 に初期化されています。i が Select オブジェクトのオプションの個数より小さいかをチェックし、続く if 文を実行し、ループが 1 回りしたら i を 1 だけ増加させます。 script type="text/javascript" // ![CDATA[ function howMany(selectObject) { var numberSelected = 0; for (var i = 0; i selectObject.options.length; i++) { if (selectObject.options[i].selected) numberSelected++; } return numberSelected; } //]] /script [[form]] name="selectForm" p strong Choose some music types, then click the button below /strong br/ select name="musicTypes" multiple="multiple" option selected="selected" R B /option option Jazz /option option Blues /option option New Age /option option Classical /option option Opera /option /select /p p input type="button" value="How many are selected?" onclick="alert ('Number of options selected ' + howMany(document.selectForm.musicTypes))"/ /p /form do...while 文 do...while 文は指定した条件が false に評価されるまで繰り返します。do...while 文は次のように使用します。 do statement while (condition); statement は条件がチェックされる前に一度実行されます。複数の文を実行するにはブロック文 ({ ... }) を使用して文をグループ化してください。condition が true の場合、その文が再び実行されます。毎回実行された後に条件がチェックされます。条件が false ときは実行が停止され、コントロールが do...while の後に続く文に渡されます。 例 次の例では do ループは最低 1 回は反復され、i が 5 より小さくなくなるまで反復されます。 do { i += 1; document.write(i); } while (i 5); while 文 while 文は、指定した条件が true に評価される限り文を実行します。while 文は次のように使用します。 while (condition) statement 条件が false になるとループ内の statement の実行が停止し、ループの後に続く文にコントロールが渡されます。 ループの statement を実行する前に条件がテストされます。条件が true を返すと statement が実行され、再び条件がテストされます。条件が false を返すと、実行が停止され、while の後に続く文にコントロールが渡されます。 複数の文を実行するにはブロック文 ({ ... }) を用いて文をグループ化してください。 例 1 次の while ループでは n が 3 より小さい限り反復されます。 n = 0; x = 0; while (n 3) { n++; x += n; } それぞれの反復で、ループは n をインクリメントし、その値を x に加えています。その結果、x と n は次の値をとります。 第 1 段階終了後:n = 1、x = 1 第 2 段階終了後:n = 2、x = 3 第 3 段階終了後:n = 3、x = 6 第 3 段階が完了すると条件 n 3 が true ではなくなっているため、ループは終了します。 例 2 無限ループは避けてください。ループの条件が最終的には false になることを確認してください。そうしないとループが終了しなくなります。次の while ループ内の文は永久に実行されます。条件が決して false にならないためです。 while (true) { alert("Hello, world"); } label 文 label を使うと、そのプログラムのどこからでも参照できる、識別子を持った文を作ることができます。例えば、ラベルを使用してあるループに名前を付けると、break 文や continue 文を使用してプログラムがループを脱出するべきかそのまま実行を継続するべきかを示すことができます。 label 文は次のように使用します。 label statement label の値は予約語でなければどんな JavaScript の識別子でも使用できます。ラベルを用いて名前を付ける statement はどんな文でも結構です。 例 この例では markLoop というラベルを用いて while ループに名前を付けています。 markLoop while (theMark == true) doSomething(); } break 文 break 文 break 文は loop 文や switch 文、label 文から抜け出すために使用します。 break にラベルを使用しないと、最も内側にある while や do-while、for、switch から抜け、続く文にコントロールを移します。 break にラベルを使用すると、指定されたラベルの付いた文から抜けます。 break 文は次のように使用します。 break; break label; 1番目の形式の構文は最も内側のループもしくは switch から抜けます。2番目の形式の構文は指定した label 文から抜けます。 例 次の例は、その値が theValue である要素のインデックスが見つかるまで、配列の要素について繰り返します。 for (i = 0; i a.length; i++) { if (a[i] == theValue) break; } continue 文 continue 文は while 文、do-while 文、for 文、label 文をリスタートさせるために用います。 ラベルを用いずに continue を使用した場合、現在繰り返している最も内側にある while 文 do-while 文、for 文を終了し、次の反復の実行に移ります。break 文とは異なり、continue はループ全体の実行を終了しません。while ループでは条件比較部分に戻ります。for ループではインクリメントの式に移ります。 ラベルを用いて continue を使用した場合、label で指定されたループ文に移ります。 continue 文は次のように使用します。 continue continue label 例 1 次の例では、i の値が 3 のときに実行される continue 文を用いた while ループを示します。こうすることで n は順に 1、3、7、12 という値をとります。 i = 0; n = 0; while (i 5) { i++; if (i == 3) continue; n += i; } 例 2 checkiandj というラベルの付いた文の中に checkj というラベルの付いた文があります。continue に出くわすと、プログラムは checkj の現在の反復を終了し、次の反復を始めます。continue に出くわすたびに、条件が false になるまで checkj を繰り返します。false が返されると checkiandj 文の残りを完了し、条件が false を返すまで checkiandj を繰り返します。false が返されると checkiandj に続く文が実行されます。 continue が checkiandj というラベルを持っているとプログラムは checkiandj 文の最初から続けます。 checkiandj while (i 4) { document.write(i + " br/ "); i += 1; checkj while (j 4) { document.write(j + " br/ "); j -= 1; if ((j % 2) == 0) continue checkj; document.write(j + " is odd. br/ "); } document.write("i = " + i + " br/ "); document.write("j = " + j + " br/ "); } オブジェクト操作文(Object Manipulation Statements) JavaScript はオブジェクトの操作に for...in、for each...in および with 文を使用します。 for...in 文 for...in 文は指定した変数をオブジェクトの全プロパティに対して反復します。それぞれのプロパティに対して JavaScript は指定した文を実行します。for...in 文は次のように使用します。 for (variable in object) { statements } 例 次の関数は、あるオブジェクトとそのオブジェクトの名前を引数にとります。そしてそのオブジェクトの全プロパティに対して反復し、プロパティ名とその値のリストにした文字列を返します。 function dump_props(obj, obj_name) { var result = ""; for (var i in obj) { result += obj_name + "." + i + " = " + obj[i] + " br "; } result += " hr "; return result; } make および model というプロパティを持つ car というオブジェクトでは次のような結果が得られます。 car.make = Ford car.model = Mustang 配列 Array の要素に対して反復する方法としてこれを用いることは魅力的かもしれませんが、for...in 文はその配列の要素に加えてユーザ定義プロパティに対して繰り返すため、独自のプロパティやメソッドを追加するなどして Array オブジェクトに変更を加えると for...in 文は数値のインデックスに加えてユーザ定義プロパティの名前を返します。したがって、配列に対して反復したいときには数値のインデックスを用いた従来の for ループを使用したほうがいいでしょう。 for each...in 文 for each...in は JavaScript 1.6 で導入されるループ文です。これは for...in に似ていますが、オブジェクトのプロパティの名前ではなく、プロパティの値に対して反復します。 with 文 with 文はデフォルトのオブジェクトについて文のセットを実行します。JavaScript はその文のセットにおいて非修飾名を検索し、その名前がデフォルトのオブジェクトのプロパティであるかを決定します。非修飾名がプロパティにマッチすると、そのプロパティがその文で使われます。そうでない場合はローカル変数かグローバル変数が使われます。 with 文は次のように使用します。 with (object) { statements } 例 次の with 文では Math オブジェクトがデフォルトのオブジェクトに指定されています。with 文内の文は PI プロパティや cos および sin メソッドを参照していますが、オブジェクトは指定していません。JavaScript はこれらの参照は Math オブジェクトへのものであると想定します。 var a, x, y; var r = 10; with (Math) { a = PI * r * r; x = r * cos(PI); y = r * sin(PI/2); } 注意:with 文を使うことでプログラムをより簡潔にすることができますが、with の不適切な使用はプログラムを大幅にスローダウンさせることに繋がります。Core JavaScript 1.5 Reference Statements with を参照してください。 コメント コメントはスクリプトの挙動を説明するメモに用います。コメントはインタプリタには無視されます。JavaScript は Java および C++ 形式のコメントをサポートしています。 1 行だけのコメントは 2 重のスラッシュ (//) から始まる。 複数行にまたがるコメントは /* から始まり */ で終わる。 例 以下に 2 つのコメントの例を示します。 // これは 1 行コメント。 /* これは複数行コメント。どんな長さでもかまわない。 書きたいことを何でもここに書ける。 */ 例外処理文(Exception Handling Statements) throw 文を使用すると例外を投げることができます。また、try...catch 文を使用すると例外を処理することができます。 try...catch 文を使用して Java の例外を処理することもできます。この情報については JavaScript での Java の例外の処理 および Java と JavaScript との通信 をご覧ください。 throw 文 try...catch 文 例外の種類 JavaScript ではほとんどどんなオブジェクトでも投げることができます。とは言っても、必ずしもすべての投げられたオブジェクトが同等に作られているわけではありません。数値や文字列をエラーとして投げる方法はよく用いられますが、特にこの用途のために作られている例外の種類のうちのどれかを使用したほうがより効率的であることがよくあります。 ECMAScript の例外 Error EvalError RangeError ReferenceError SyntaxError TypeError URIError DOM の例外 DOMException EventException RangeException ... (?) nsIXPCException (XPConnect) throw 文 throw 文は例外を投げるために使用します。例外を投げるときは、投げたい値からなる式を指定してください。 throw expression; 特定の型の式だけではなく、あらゆる式を投げることができます。下記のコードは様々な型の例外を投げています。 throw "Error2"; throw 42; throw true; throw {toString function() { return "I'm an object!"; } }; 注意:例外を投げる際にオブジェクトを指定することができます。すると、catch ブロックでそのオブジェクトのプロパティを参照できるようになります。次の例では UserException という種類の myUserException というオブジェクトを作ります。また、このオブジェクトを throw 文で使用します。 // UserException という種類のオブジェクトを作成 function UserException (message) { this.message=message; this.name="UserException"; } // 文字列として使用されるとき(例:エラーコンソール上)に // 例外を整形する UserException.prototype.toString = function () { return this.name + ' "' + this.message + '"'; } // そのオブジェクトの種類のインスタンスを作成し、それを投げる throw new UserException("Value too high"); try...catch 文 try...catch 文はテストしたい文のブロックを指定し、さらに投げられるであろう例外に対する 1 つ以上の対処方法を指定します。例外が投げられると try...catch 文がそれを受け取ります。 try...catch 文は 1 つの try ブロックと 0 個以上の catch ブロックからなります。前者は 1 つ以上の文からなります。後者は try ブロックで例外が投げられた場合にどうするかを指定する文からなります。すなわち、成功させたい try ブロックと、失敗した場合にコントロールを渡す catch ブロックからなります。try ブロック内(もしくは try ブロック内から呼び出された関数内)のいずれかの文が例外を投げた場合、コントロールはすぐに catch ブロックに移ります。try ブロックで例外が投げられなかった場合は catch ブロックは飛ばされます。finally ブロックは try および catch ブロックが実行された後に実行されます。ただし try...catch 文の後に続く文より先に実行されます。 次の例では try...catch 文を使用しています。この例では渡された値に基づいて配列から月の名前を取り出す関数を呼び出します。値に対応する月の数字 (1-12) がなかったら、InvalidMonthNo という値を持つ例外が投げられ、catch ブロックの中の文は monthName という変数に unknown という値をセットします。 function getMonthName (mo) { mo=mo-1; // 月の数字を配列のインデックスに合わせる (1=Jan, 12=Dec) var months=new Array("Jan","Feb","Mar","Apr","May","Jun","Jul", "Aug","Sep","Oct","Nov","Dec"); if (months[mo] != null) { return months[mo] } else { throw "InvalidMonthNo" } } try { // テストする文 monthName=getMonthName(myMonth) // 関数は例外を投げることがある } catch (e) { monthName="unknown" logMyErrors(e) // 例外オブジェクトをエラー処理部分に渡す } catch ブロック 単一の catch ブロックを使用すると、try ブロックで生じうるすべての例外を扱うことができます。また、扱う例外の種類によって catch ブロックをそれぞれに分けることもできます。 単一の catch ブロック try ブロックで投げられるいかなる例外にも対応したエラー処理コードを実行するには、try...catch 文で catch を 1 つ使用してください。 単一の catch ブロックは次のように使用します。 catch (catchID) { statements } catch ブロックは、throw 文で指定された値を持つ識別子(上記の構文における catchID)を指定します。この識別子を使用することで投げられた例外についての情報を得ることができます。JavaScript は catch ブロックに入るときにこの識別子を作成します。識別子は catch ブロックにいる間だけ持続します。つまり、catch ブロックの実行が終了するとその識別子はもう使えなくなります。 例えば、次のコードは例外を投げます。例外が生じるとコントロールが catch ブロックに移ります。 try { throw "myException" // 例外を生成 } catch (e) { // どんな例外も扱う文 logMyErrors(e) // 例外オブジェクトをエラー処理部分に渡す } 複数の catch ブロック 1 つの try 文に対して、複数の条件についての catch ブロックを使うことができます。そして、そのそれぞれがそれぞれの種類の例外を担当します。この場合、そのブロックで指定されている例外が投げられたときだけ、適切な条件の catch ブロックに入ることになります。すべての未指定の例外のために、すべての例外に対応した catch ブロックをその文の最後の catch ブロックとしてオプション的に設けることもできます。 例えば、次の関数は 3 つの別の関数(どこかで定義済み)を呼び出します。この関数はその引数が妥当であるかを確かめます。妥当性確認関数が確認対象の構成要素が妥当でないと決定した場合、その関数は 0 を返し、該当する例外を呼び出し元に投げさせます。 function getCustInfo(name, id, email) { var n, i, e; if (!validate_name(name)) throw "InvalidNameException" else n = name; if (!validate_id(id)) throw "InvalidIdException" else i = id; if (!validate_email(email)) throw "InvalidEmailException" else e = email; cust = (n + " " + i + " " + e); return (cust); } おのおのの条件の catch ブロックは適当な例外処理部分にコントロールを渡します。 try { // 関数は 3 つの例外を投げうる getCustInfo("Lee", 1234, "lee@netscape.com") } catch (e if e == "InvalidNameException") { // 不正な名前に対しての処理部分を呼び出す bad_name_handler(e) } catch (e if e == "InvalidIdException") { // 不正な ID に対しての処理部分を呼び出す bad_id_handler(e) } catch (e if e == "InvalidEmailException") { // 不正なメールアドレスに対しての処理部分を呼び出す bad_email_handler(e) } catch (e){ // 何が起きるかはわからないが、そのログをとる logError(e) } finally ブロック finally ブロックは、try および catch ブロックの実行が終わった後に実行される文からなります。ただし try...catch 文の後に続く文より前に実行されます。finally ブロックは例外が投げられても投げられなくても実行されます。例外が投げられた場合、finally ブロック内の文はたとえ例外処理をする catch ブロックがなくても実行されます。 finally ブロックを使用することで、例外発生時に適切にスクリプトを停止させることができます。例えば、スクリプトで使用していたリソースを解放する必要があるかもしれません。次の例ではファイルを開き、そのファイルを使用する文を実行します(サーバサイド JavaScript ではファイルにアクセスできます)。ファイルを開いている間に例外が投げられると、スクリプトが停止する前に finally ブロックがそのファイルを閉じます。 openMyFile(); try { writeMyFile(theData); // エラーを投げる可能性がある }catch(e){ handleError(e); // エラーを受け取り、それを処理する }finally { closeMyFile(); // 常にリソースを閉じる } try...catch 文のネスト 1 つ以上の try...catch 文を入れ子にすることができます。内側の try...catch 文に catch ブロックがない場合、囲んでいる try...catch 文の catch ブロックがマッチしているか確認されます。