約 61,959 件
https://w.atwiki.jp/wiki6_sagi/pages/6.html
関連リンク ネットトラブル相談窓口リンク - 相談窓口など 探偵ファイル - 通報すればもしかしたら取り上げてくれるかも? ネット詐欺撲滅!!ーwsのウェブサイト - 参考になる? メジャーなニュース番組の情報投稿ページ - 投稿すれば取り上げられるかも?日テレ フジ TBS 警察庁のサイバー犯罪対策インターネット安全・安心相談 - 被害者でなくてもここから相談できます。詳しくは購入者じゃないけど許せない!へ 暴露情報掲示板▲全員例外なくすぐに10万あげます▼絶対返金▲余裕でミリオネア その7 ▲全員例外なくすぐに10万あげます▼絶対返金▲余裕でミリオネア その6 ▲全員例外なくすぐに10万あげます▼絶対返金▲余裕でミリオネア その5 ▲全員例外なくすぐに10万あげます▼絶対返金▲余裕でミリオネア その4 ▲全員例外なくすぐに10万あげます▼絶対返金▲余裕でミリオネア その3 ▲全員例外なくすぐに10万あげます▼絶対返金▲余裕でミリオネア その2 ▲全員例外なくすぐに10万あげます▼絶対返金▲余裕でミリオネア ミリオネア通報テンプレート 2ちゃんねる【完全暴露】有料情報を無料で公開します!Part48 【完全暴露】有料情報を無料で公開します!Part47 暴露掲示板管理人XさんのYahoo!ブリーフケース 転載者&クレーマー撃退! -出品者が作った反撃サイトです。
https://w.atwiki.jp/2g_java/pages/13.html
エラー処理とログ出力 (2011-10-31 13 08 25) *ログ用にファイル名、クラス名とかの取得... (2011-10-31 14 48 44) サイト名 URL エラー処理 ログ出力の考え方 エラー処理とログ出力 どこでエラーを出力するべきか? 1つは、ある関数でエラーが発生した時、エラーの出力もその関数の中で行ってしまう、という方針が考えられます。ログの出力は、たいていはこの方針で行われます。 もう1つは、発生したエラーの情報を呼び出し側に渡して、エラーの出力は呼び出し側で行う、という方針も考えられます。エラーメッセージの出力は、たいていはこの方針で行われます。 エラーが発生した箇所で、エラーの出力も行う場合の問題点 汎用性が無くなる ログを出力する仕組みは、アプリケーションごとに異なります。 あるアプリケーションの中から、汎用的なソフトウェア部品を取り出し、他のアプリケーションに流用したいこともあります。しかし、2つのアプリケーションで、異なるログ出力の仕組みを使っている場合は、簡単には流用できなくなることがあります。 文脈が分からない 同じ状況が発生しても、呼び出された時の文脈によって、正常であったり、エラーであったりすることがあります。また、警告レベルのエラーに過ぎないこともあれば、致命的なエラーであることもあります。 呼び出される関数の側では、上位側からどのような文脈で呼び出されているのかを、知ることができません。そのため、エラーが発生しても、その重要性の判断ができません。 これは、汎用的なモジュールやクラスを作っている時に、特に問題となります。 実際のソフトウェア開発では、汎用的なモジュールであっても、呼び出される文脈が特定されていることがあります。その場合は、その文脈でしか呼び出されない、という前提で、エラー処理を実装してしまうことがあります。 例えば、XMLファイルを読み込み、引数で指定されたタグの値を読み取るモジュールを作ったとしましょう。指定されたタグが存在しない場合、これをエラーとするかどうかは、文脈に依存します。 しかし、このモジュールを使うアプリケーションでは、必ず存在するタグしか指定しない、と分かっていたとしましょう。この時、モジュールの中で、指定されたタグが存在しない場合はエラーを出力する、という処理を記述してしまうことがあります。 しかし、このように呼び出される文脈を意識した作りは、正しい設計ではありません。また、汎用性も失われてしまいます。 状況に応じた制御ができない ある関数が繰り返し呼び出される時は、エラーの出力を抑制したくなります。数百個もの同じようなエラーメッセージを出力するよりは、「数百個のエラーがあります」というエラーメッセージを1回だけ出力する方が良いでしょう。 しかし、呼び出される関数では、数百回も繰り返し呼び出されている、ということは分かりません。 出力の仕方は一通りではない エラーの出力を行う方法は、必ずしも一通りではありません。 エラーの書式は、アプリケーションごとに異なるかもしれません。また、アプリケーションによっては、複数の出力先にそれぞれエラーを出力することもあるかもしれません。 エラーが発生した箇所でエラーの出力も行う方針では、このようなバリエーションには対応できません。 エラーの情報を返し、上位側でエラーの出力を行う場合の問題点 下位が上位を意識してしまう 上位側でどのような出力を行うのかは、エラーが起きた下位のモジュールやクラスでは、本来は意識すべきではありません。 しかし、実際には、下位側のエラー情報の返し方を見ると、上位側でのエラー出力の仕方を強く意識していることが良くあります。 例えば、C言語では、エラー情報を返す際に、エラーコードという番号を返すことが多くあります。これは、何故でしょうか。 たいていの場合、呼び出し側で出力するエラーメッセージでは、エラーの概要だけを示し、詳細な値などは出力しません。そのため、エラーの内容を表すエラーコードだけで充分なのです。言い換えると、上位側で出力するエラーメッセージには、値などは出力しない、と分かっているからこそ、下位側の関数は、エラーコードだけを返すように決められる訳です。 情報が隠蔽されない 上位側でどのような出力も行えるようにするには、エラーに関するあらゆる情報を渡すことになります。 しかし、設計の良し悪しで言えば、下位側の詳細な情報は、上位側には隠されているべきです。 もし、ログの出力を上位側に委譲するとなると、クラスのprivate変数や、関数内で宣言された自動変数などまで、上位側に見せなくてはいけないかもしれません。 気が付いたら、すべての変数がpublicになっていた、ということにもなりかねません。 ポリモーフィズムに対応できない オブジェクト指向言語では、さらに難しい問題が発生します。 クラスの継承やインターフェースの実装を行い、親クラスで定義されているメソッドを子クラスでオーバーライドします。この時、このメソッドから呼び出し側に渡せる情報は、親クラスで宣言された例外に限定されます。 親クラスでは、どのような子クラスが存在するかを知りません。メソッドが投げる例外には、親クラスのフィールドの情報をすべて含めることはできます。しかし、子クラスで独自に定義されるフィールドの情報は、含めることはできません。 子クラスでは、親クラスで宣言された例外を継承し、子クラス独自のフィールドの情報も、例外に詰め込むことはできます。 しかし、上位側、即ち、このメソッドを呼び出す側では、親クラスしか意識していません。投げられる例外も、親クラスで宣言された型で扱います。そのため、上位側では、子クラス独自のフィールドの情報は、得ることができません。 正しいエラー処理のやり方とは? 実際のアプリケーションの開発では、エラーの判定やエラー処理だけを、独立したクラスに分離する、ということも良くあります。エラー処理やログ出力を行う専門のクラス群を作る訳です。この場合、これらのクラス群と、ソフトウェア本来の処理を行うクラスとの結合をできるだけ疎にすることが理想的です。 これがうまくいけば、ソフトウェア本来の処理と、エラー処理やログ出力を、見事に切り離すことができたように見えることでしょう。アスペクト指向プログラミングが目指した理想の形は、エラー処理やログ出力まで含めたソフトウェア全体の設計をうまくデザインすることでこそ、実現できるのではないか、と思います。 例外処理との正しい付き合い方 例外処理との正しい付き合い方 JavaDoc を見ると、メソッドでスローされる可能性のある例外が分かります。 例外の種類 チェックすべき例外 try ... catch を使用して例外処理を行うことが義務付けられています。try ... catch を行っていないプログラムを javac でコンパイルをすると、「例外 XXX は報告されません」とコンパイルエラーになります。 実行時例外 細心の注意を払ってコーディングされていれば、通常は発生することはありません。 エラー 何らかの理由で、Java VM が回復不能状態になったときに発生します。このため、try ... catch で例外処理を行うことはできません 例外処理の方法 種類 例外をキャッチして、その場で例外処理を行い、呼び出されたメソッドには例外を伝えない。 例外をキャッチして、新たな例外を生成して呼び出したメソッドに再スロー。 例外をキャッチせずに、そのまま呼び出したメソッドに伝える。もしくはキャッチした例外を、そのまま呼び出したメソッドに再スローする。 スタックトレース [[]]
https://w.atwiki.jp/wiki8_anson/pages/31.html
finallyを使ってみる 例外を検出するぞー、と意気込んでtry catch構文を使っていても 例外が検出されなかったときや、どの例外のときでも一律して行いたい 処理がある場合につかうのが finally{} です、これを使うと必ず最後に{}の処理を行ってくれます 例外を検出できないサンプル class SuperClass { public int x[] = new int[5]; //コンストラクタ public SuperClass(int m){ x[m] = m; } //メソッド public void Out(int n){ System.out.println("配列の中身は" + x[n]); } } class Sample { public static void main(String args[]) { //サブクラス作成 SuperClass test = new SuperClass(4); //例外を検出 try { //サブクラスのメソッド test.Out(4); } catch(ArrayIndexOutOfBoundsException e){ System.out.println("発生した例外は" + e); } finally{ System.out.println("平穏無事"); } } } ■戻る
https://w.atwiki.jp/mysticegg/pages/69.html
接頭語(オプション)一覧 2種類に分類される接頭語(オプション)が付くと特殊効果が付与されます。上位と下位が同時に付与された場合は接頭語は上位オプションのものが優先して表示される下位オプション:基礎パラメータが上がる 上位オプション:特殊パラメータが上がる ↑とは別に複数のパラメータが同時に上がる複合オプションもVer1.12から実装されている(上昇量自体は単体で上がるオプションより小さい) 装備ランクが高い武具程、最大補正値が大きくなります。 ゲームの難易度が上がるにつれ、最大補正値が大きくなります。 高レベルの異界の王を撃破した際、入手アイテムのクオリティ限界値が僅かに上昇します。 混沌と無限の回廊、深層において入手アイテムのクオリティ限界値が僅かに上昇します。上記、異界の王の補正とは重複せず、どちらか高いほうが適用されます。 部位 接頭語 効果 +補正 装備限定 最大値(暫定) 備考 武器 治癒の 命中HP回復 小 - +315 例外:ヒールリング (B100+185) 回復の 大 - +983 吸収の 強打HP吸収 小 - +65% 生命の 大 - +134% 活撃の 攻撃FP 小 - +7 理撃の 大 - +15 不滅の 強打HP吸収&攻撃FP 小 - 吸+44% 攻F+5 会心の CRI威力 小 - +65% 例外:エグゼクトリング (B25%+49%) 必殺の 大 - +194% 例外:エグゼクトリング (B25%+89%) 速攻の 攻撃速度 小 - +21 光速の 大 - +55 瞬殺の CRI威力&攻撃速度 小 - CRI威+63% 速+10 天殺の 中 - CRI威+63% 速+18 貫通の 貫通 小 - +39% 溶解の 大 - +95% 魔撃の 魔法威力 小 - +10 例外:レインボーリング (B7%+9%) 神撃の 大 - +28 例外:レインボーリング (B7%+19%) 速唱の 詠唱短縮 小 杖 +18% 例外:セレニティエンブレム (B7%+15%) 無唱の 大 杖 +55% 例外:セレニティエンブレム (B7%+28%) 理法の 魔法FP 小 - +36% 例外:マジックジュエル (B25%+28%) 理術の 大 - +115% 例外:マジックジュエル (B25%+74%) 知王の 魔法威力&魔法FP&詠唱短縮 小 杖 魔威+7 魔F+36%詠+18% 例外:レインボーリング (魔威B7%+6%) 全知の 中 杖 魔威+7 魔F+36%詠+18% 知王の上位互換 部位 接頭語 効果 +補正 装備限定 最大値(暫定) 備考 防具 防壁の 物理軽減 小 - +36% 鉄壁の 大 - +72% 魔防の 魔法軽減 小 - +36% 魔壁の 大 - +78% 護りの 物理軽減&魔法軽減 小 - 物+20% 魔+26%(物魔計+26%) 神護の 中 - 物+20% 魔+26%(物魔計+46%) 再生の HP再生 小 体 +7% 不死の 大 体 +21% 頑丈の HP&MP 中 - HP+11% MP+11%計+22% 気合の 自動FP増加 小 体 +5 例外:フォースジュエル (B2+2) 気力の 大 体 +7 出現率が異常に低い 部位 接頭語 効果 +補正 装備限定 最大値(暫定) 備考 共通 体力の HP 小 - +4% 魔力の MP 小 - +4% 腕力の 腕力 小 - +4% 例外:アメジストリング(英星) 技術の 攻撃技術 小 - +4% 例外:オパールリング(英星) 攻撃の 腕力&攻撃技術 小 - 腕+5% 技+5%計+5% 例外:オパールリングアメジストリング 回避の 回避力 小 - +4% 例外:サファイアリング(英星) 法力の 魔法力 小 - +4% 例外:オニキスリング(英星) 知識の 知識力 小 - +4% 例外:ルビーリング(英星) 魔術の 魔法力&知識力 小 - 魔+5% 知+5%計+5% 例外:ルビーリングオニキスリング 抵抗の 抵抗力 小 - +4% 例外:ダイアモンドリング(英星) 英▲の ▲がランダム 中 - +6%(撃/術+5% 計+7%) ▲ 体/魔/腕/技/避/法/知/抵/撃/術 星▲の 大 - +11%(撃/術+5% 計+10%) ▲ 体/魔/腕/技/避/法/知/抵/撃/術 最大値(暫定):より高い数値を発見した場合に修正編集して下さい。※装備に元々付与している数値を除いた値を記入して下さい。例:必殺のクリスナーガ(CRI威力+161%)を発見→元性能がCRI威力+30%なので『最大値(暫定)= +131%』例:気合のフォースジュエル(FP+4)を発見→元性能がFP+2なので『最大値(暫定)= +2』 さらにアクセサリは元性能(ベース)+最大値(暫定)→(B2+2)と別途表記してます。 『虚無のセレスティア』は各共通オプションが付与する場合がある。 『放浪のストラシア』は各共通オプションが付与する場合がある。 アクセサリーの補正最大値は武具よりも少し低いかも?(詳細不明) コメント 名前 コメント すべてのコメントを見る 上へ
https://w.atwiki.jp/shuei/pages/245.html
PL/SQLの概要 PL/SQLの実行 SQL*Plus で実行したり、CやCOBOLプログラム中に埋め込んだりして実行 複数のSQL文を含むSQLブロックをブロック単位で一度に送信 アプリケーションとOracle間の通信料を削減でき、パフォーマンス向上 サポートするSQL文 select文・DML文・トランザクション制御のみ dbms_sqlパッケージ DDL・動的SQL文は、dbms_sqlパッケージによりPL/SQL内での実行が可能になる 動的SQL 表名・列名を実行時に指定することができ、DDL文内で利用する サポートするデータ型 Oracle Serverで提供するすべてのSQLデータ型をサポートする データベース表の各列の属性に対応する変数を宣言し、処理を行える データ型のサブタイプ ANSI/ISO・IBM型に対して、互換性を持たせるためのデータ型 PL/SQLエンジンの所在 サーバー側・ツール側の2通り サーバー側 ~ アプリがサーバへ送信・サーバー側で解析・プロシージャの実行後、同一サーバー上のSQL文エクゼキュータに送信 埋め込み型のPL/SQL実行プロセス:DBトリガー・ファンクション・パッケージ ツール側 ~ アプリは同一サーバのエンジンへ送信・解析・プロシージャの実行号、サーバー上のエクゼキュータに送信 Developer Forms/Reports ストアドプロシージャ・DBトリガー・パッケージ 共にPL/SQLエンジンへアプリが送信するものはPL/SQLブロック PL/SQLブロックの構成 宣言部・実行部・例外処理部 宣言部 DECLARE以下 スカラー型・コレクション型(複合型)もサポート 変数・定数の宣言 配列・表・カーソル・プロシージャ・関数の定義 実行部 BEGIN以下 記述が必須 SQL文を実行 子ブロックを挿入 例外処理部 EXCEPTION以下 実行部での例外処理を記述 終了の記述は END; コメントアウト 一行のみ -- 範囲指定 /* */ 宣言部 変数・定数の命名規則 30バイト以内 先頭は文字 予約後は不可 名前の優先順位 SELECT 文・WHERE 文では、列名>変数名・定数名>表名 INTO 句などのように列を指定できないものには、変数名 変数の宣言 変数名 データ型 [ not null ][ ( =/default) 初期値]; not nullの場合には、必ず指定・複数の変数名を一度に指定できない 定数の宣言 定数名 constant データ型 ( =/default) 初期値; 宣言部でのみ一度だけ値を代入可能 ブール変数 変数名 boolean ; AND / OR / NOT を使用して true / false / nullのいずれかがが入る LOB型の取り扱い 一つの表の複数列に対して定義が可能 列にはLOBロケータのみが格納 CLOB / NCLOB / BLOB / BFILE システム環境変数の取得 select USER / SYSDATE from dual; バインド変数 SQL*Plus環境でバインド変数を宣言すると、SQL*Plus内及びPL/SQLの複数ブロックで参照可 SQL*PlusからSQL文及びPL/SQLブロックへ変数を受け渡す時に使用 SQL*Plusでの宣言 variable バインド変数名 データ型 SQL*Plusでの表示 print バインド変数名 PL/SQLブロック内で、バインド変数を参照するには、変数名の前にコロンをつける 変数名 = 右辺 ; dbms_outputパッケージ dbms_output.put_line ( ); 括弧内にSQL*Plusのバッファより出力するデータを指定 PL/SQLブロック内でバインド変数などを取得して表示できる SQL*Plusでは、set serveroutput on を指定する必要 複合データ型の宣言 索引付き表 type 表名(型) is table of データ型 [not null] index by binary_integer; 作成表名 表型; < 索引付き表の宣言 → サイズ制限なし レコード type レコード名(型) is record ( フィールド名 データ型 [not null][ =式], .... ) ; レコード変数名 レコード型; < フィールドを持つレコードの宣言 索引付き表のメソッド 変数名.メソッド[(n[,m])] delete(n,m) / exists(n) / count / first / last / prior(n) / next(n) / trim レコードの索引付き表 DB表のような2次元表が型として定義可能 1.レコードの宣言(表の列定義に対応) 2.表型を宣言したレコードの集まりとして宣言 3.2次元表名 レコードの索引付き表型; の形で宣言 %TYPE属性 DBの列定義・以前に宣言された別の変数の型を参照できる 利点 参照先が未知の時や変更された時・複数を宣言する場合など 表の列の属性を指定する場合 表名.列名%TYPE 第n行のある列の属性を指定するには、2次元表名(n).列名%TYPE not null は継承しない %ROWTYPE属性 DB表から選択された行・レコード型のフォーマットを参照できる 第n行の列定義を指定するには、2次元表名(n)%ROWTYPE not null は継承しない 実行部 変数への代入 左辺 = 右辺 データ型が同じ 或いは互換性がある必要 右辺には、変数・定数・値・式・SQL関数の記述が可能 select文を使用した変数への代入 select 列名1,列名2,列名3 into 変数1,変数2,変数3 from 表名; 単一行が返る場合のみ 複数行が返る場合はカーソル処理 DML文の実行 DML実行時に処理対象が存在しなくても、エラーにならずにそのまま進行 暗黙的変換 明示的に変換を行った方がパフォーマンスが良い システムのオーバーヘッドの発生 char / varchar2 との変換は、どの型にもどの型からも相互変換可能 long へは、rowid型から変換できない long が変換可能なのは、char / varchar2 / raw のみ number と bin_int と pls_int は相互に変換可能 明示的変換 SQL変換関数による明示的変換 number - to_char, to_date date - to_char char - to_number, to_date RAW型は、16進数へ変換しchar型へ格納 rawtohex - hextoraw ROWID型は、char型へ格納 rowidtochar - chartorowid 制御文 ループやカーソル処理を行える decode / dump / vsize / グループ関数などは使用できない 分岐制御 IF 条件 THEN 処理 ELSIF 条件2 THEN 処理2 ELSE 処理3; CASE 変数名など WHEN 値 THEN 結果; WHEN 値2 THEN 結果2; ELSE 結果n END; CASE WHEN 条件 THEN 処理; ... ELSE 処理n; END; 条件において、等号は「=」であって「==」や「 =」は使えない 反復制御 LOOP EXIT WHEN 終了条件; 処理; END LOOP; LOOP IF 条件 THEN EXIT; END IF; 処理; END LOOP; FOR カウンタ名 IN 最小値 .. 最大値 LOOP 処理; END LOOP; FOR カウンタ名 IN REVERSE 最小値 .. 最大値 LOOP 処理; END LOOP; FORループにおいて、REVERSEであっても最小値が先 小数値を入れた場合、小数第一位で四捨五入される WHILE 条件 LOOP 処理; END LOOP; 反復制御に関するカウンタ名は、宣言部で変数宣言をしてはいけない ( bin_pls型で自動定義 ) [ ラベル名 ] をループ前に、END LOOP ラベル名;で終わると、ネストループが可能 カーソル 結果セットへアクセスするためのポインタ カーソル属性はSQL文で使用できない 結果セット select文によって選択された行の集合 明示カーソル 宣言・オープン・フェッチ・クローズを明示的に行う select文で複数の行を参照する場合にも使用 DML文は指定できない 宣言:cursor カーソル名 is select文; 行名 カーソル名%ROWTYPE;~ オープン:open カーソル名; フェッチ:fetch カーソル名 into 行名; クローズ:close カーソル名; フェッチでは、行より一セット取得のみ、ループで実行させる 明示カーソルのロック for update [of 列1[,列2]] [nowait] 宣言部のselect文の最後 order by - よりさえも後に記述 カーソル範囲の行をロックし、ブロック内での更新・削除の間有効 他のトランザクションによりロックされている場合、nowait指定であればエラーで停止 where current of カーソル名; 実行部のupdate文・delete文の最後 必ずfor update句の宣言が必要 ※lock table文で表を指定すると、表全体をロック可能 明示カーソルの状態 %NOTFOUND fetch実行時に、取り出す行がない場合 true(例:exit when カーソル名%NOTFOUND) %FOUND 取り出す行がある場合 true %ROWCOUNT 取り出し行の累計 %ISOPEN カーソルがオープンしている間 true %NOTFOUND / %FOUND / %ROWCOUNT は、オープンしていない場合、エラー又は例外処理 %NOTFOUND / %FOUND は、オープン後、初めのfetch文まで false 2次元表をカーソルで回せば、DML文などで行を処理できる 行名.列名 カーソルFORループ カーソルを宣言部で宣言するのみ 行名宣言不要 カウント名はループ内での行名、%ROWTYPE属性となり行名.列名%TYPEで属性取得 パラメータ付き明示カーソル 宣言文にて、引数を指定できる (例:cursor カーソル名 ( num number ) is select) ただし引数のサイズは指定しない 暗黙カーソル 単一select行・DML文でカーソル取得 複数行返る場合・結果がない場合エラー又は例外処理 SQLカーソル SQL%NOTFOUND SQL文が行を取り出さなかった場合 true SQL%FOUND SQL文が行を取り出した場合 true SQL%ROWCOUNT SQL文が実行された累計 SQL%ISOPEN 常にfalse なぜならSQLカーソルは暗黙カーソルであるから 例外処理 例外の種類 事前(内部)定義例外 PL/SQLの使用として、事前に定義されている ユーザー定義例外 開発者が独自に例外を定義したもの 例外の宣言 宣言部で行う 例外名 exception; 例外の発生 実行部にて、raise 例外名; で明示的に発生可能 実行部で例外が発生した場合、例外処理部の例外ハンドラのルーチンで処理が行われる その時制御は例外ハンドラへ移り、制御はブロックを抜け実行環境へ戻る(実行部には戻せない) 対応する例外ハンドラが(OTHERSさえも)ない場合、実行環境にエラーを返す 例外処理の書式 WHEN 例外名1 [OR 例外名2] THEN 処理1; [WHEN OTHERS THEN 処理2;] エラー処理関数 処理中の例外についての情報は、SQLCODE 及び SQLERRM を参照 SQL文で直接利用できない為、予め宣言しておいた変数に代入して利用 SQLCODE (Oracleエラーコード) は number型 SQLERRM (SQLCODEに対応するエラーメッセージ)は varchar(n)型 例外が発生していない場合、SQLCODE = 0 ; ユーザー定義例外は指定なくばSQLCODE = +1 事前定義の例外 Oracle Server によって多数の例外が処理及びエラーコードに関連付けられている access_into_null / collection_is_null / cursor_already_open / dup_val_on_index invalid_cursor / invalid_number / login_denied / no_data_found / not_logged_on program_error / rowtype_mismatch / self_is_null / storage_error / subscript_beyond_count subscript_outside_limit / sys_invalid_rowid / timeout_on_resource / too_many_rows value_error / zero_divide エラーのユーザー定義 非事前定義例外の指定 OTHERS か 宣言 例外名 exception; pragma exception_init (例外名, エラーコード); エラーをユーザー定義&発行する raise_application_error (エラーコード, エラーメッセージ); その時、もし非事前定義が定義されていれば、そのエラーコードで例外処理 もしくは、raise で例外を発行して例外処理 例外参照するブロックの例外処理部では、通常通り WHEN文 ユーザー定義例外で使用できるエラーコードの範囲は、-20000 〜 -20999 ブロックのネスト ネストブロック 実行部・例外処理部で記述する「無名PL/SQLブロック」と宣言部で予め宣言する「ストアドプログラム」がある 子ブロックの実行が終わると、親ブロックの次の行へ 例外処理は、親方向へ処理できるまで受け渡す ただし例外発生時点で終了 グローバル変数とローカル変数 親ブロックで宣言された変数をグローバル変数、それ以外をローカル変数と呼ぶ ループで使用されるカウント名は・・・・ グローバル変数とローカル変数が同名の場合、ローカル変数が優先 ストアドプログラム 呼び出し可能な名前つきのPL/SQLブロック・定義は宣言部(カプセル化)もしくは実行部・例外処理部に埋め込む ストアドプロシージャとストアドファンクションの2種類 ストアドプロシージャ:特定の処理の実行するストアドプログラム・パラメータを渡し返す ストアドファンクション:関数のように、パラメータを渡して値を計算するプログラム・return句で返値がある プロシージャの定義構文 procedure プロシージャ名 [(パラメータ名 IN / OUT / IN OUT データ型, ..... )] is ローカル変数の宣言 begin 実行部 exception 例外処理 end [プロシージャ名] ; プロシージャの呼び出し プロシージャ名 [(パラメータ名, ....)]; Oracleアーキテクチャ Oracleインスタンスの構成要素 SGAとバックグランドプロセス SGAの構成要素 最大サイズ sga_max_size 超えない範囲でlog_buffer以外を動的に変更可 共有プール・データベースバッファキャッシュ・REDOログバッファ 共有プールの構成要素 サイズ shared_pool_size データディクショナリキャッシュ・ライブラリキャッシュ・ロック データディクショナリキャッシュ 直近に使われたDDの表と列の定義・ユーザー名・パスワード・権限 ライブラリキャッシュ 直近に使われたSQLの実行計画・解析ツリー・PL/SQL文の解析及びコンパイル済み情報 サーバープロセスは共有プールのライブラリキャッシュとDDキャッシュを使ってSQLを解析 ある文の実行計画が他の文の実行計画に置き換えられる前に問い合わせを再実行する場合、サーバープロセスは文を解析する必要が無いので、アプリケーションのパフォーマンスは向上 データベースバッファキャッシュ サイズ db_cache_size 直近に使われたブロックのコピーを格納 db_keep_cache_size / db_recycle_cache_size により複数のバッファプールを構成 再利用される可能性が高い(低い)オブジェクトのデータブロックを格納するDBバッファキャッシュ db_nK_cache_sizeにより非標準ブロックサイズを指定 ( 2k/4k/8k/16k/32k ) REDOログバッファ サイズ log_buffer Oracle データベースの構成要素 データファイル・REDOログファイル・制御ファイル 初期化パラメータファイル・パスワードファイル・アーカイブREDOログファイル 問い合わせ 解析・実行・フェッチのフェーズを経て処理される ユーザープロセスはサーバープロセス ( Snnn ) に問い合わせ 以下はSnnnが主体 解析フェーズ 文の妥当性をチェックし、共有プール内でコンパイル、ユーザーにステータスを返す 実行フェーズ DBバッファキャッシュから必要なブロックを探し、見つからない場合データブロックから直接読み実行 フェッチフェーズ 結果を順次、ユーザーへ返す DML文の流れ 1.解析フェーズを終えた後に、変更の対象をロック ( ビットマップでは全体をロック ) 2.変更時には変更前後の値がREDOログバッファに記録される 3.変更前の値はUNDOセグメントに保存される 4.元データを新データに更新 delete 文が実行された場合、変更前の値として削除前の行が格納される insert文が実行された場合、変更前の値として場所情報 ( ROWID ) のみが格納される トランザクションの終了 コミット・DDL文 1.REDOログバッファにSCNとコミットレコードを書き込む 2.LGWRがREDOログバッファのエントリをREDOログファイルに書き込む 3.Snnnはユーザーに「コミット完了」が伝える 4.Snnnは、DBバッファキャッシュに「トランザクション完了」と「リソースロック解除」を書き込む SCN コミット完了毎に割り当てられる一意の番号 データの同期、読み取り一貫性を保証する内部タイムスタンプ
https://w.atwiki.jp/javamock/pages/15.html
HelloWorld.java 下記のHelloWorld.javaについて簡単にですが解説します HelloWorld.java class HelloWorld { public static void main([[String]][] args) { System.out.println("[[Hello World]]"); } } クラス クラスは以下のように記述します 修飾子 class クラス名 extends スーパークラス implements インターフェース, インターフェース, インターフェース ...{ フィールド,コンストラクタ,メソッド,内部クラスなど } 修飾子 以下の修飾子を指定します ※記述しなければデフォルトの修飾子になります 修飾子 修飾子種別 public アクセス修飾子 protected アクセス修飾子 private アクセス修飾子 static スタティック修飾子 final ファイナル修飾子 abstract 抽象修飾子 strictfp 厳密浮動小数修飾子 extends スーパークラス 継承するクラスを指定します ※記述しなければ「extends java.lang.Object」になります implements インターフェース, インターフェース, インターフェース ... インターフェースを指定します ※インターフェースが必要なければ記述しません メソッド メソッドは以下のように記述します 修飾子 戻り値 メソッド(引数,引数,引数,...) throws 例外クラス,例外クラス,例外クラス... { 処理など } 上記のHelloWorld.javaでは以下の箇所です public static void main(String[] args) { System.out.println("Hello World"); } ※javaコマンドで実行されるクラスは以下シグネチャを持つmainメソッドが定義されている必要があります ※実行後最初に呼び出されるメソッドです public static void main(String args[]) 修飾子 以下の修飾子を指定します ※記述しなければデフォルトの修飾子になります 修飾子 修飾子種別 public アクセス修飾子 protected アクセス修飾子 private アクセス修飾子 static スタティック修飾子 final ファイナル修飾子 abstract 抽象修飾子 native ネイティブ修飾子 synchronized 同期修飾子 strictfp 厳密浮動小数修飾子 戻り値 戻り値のデータ型を指定していします ※voidを指定すると何も返しません 引数 引数を指定します 上記のHelloWorld.javaでは以下の箇所です String型の配列を引数としています String[] args throws 例外クラス,例外クラス,例外クラス... 例外クラスを指定します 指定した例外が発生したとき例外を投げます System.out.println("Hello World"); java.lang.Systemクラスのフィールドout(java.io.PrintStreamクラス)の メソッドprintln()に引数として"Hello World"を渡すことでHello Worldと出力します
https://w.atwiki.jp/ambition/pages/16.html
例外 概要 例外もクラスの一種である。 制約事項にあるように、特定のクラスから派生される派生クラス。 この派生クラスのインスタンスをthrowキーワードで指定することにより、 独自の例外を発生させることが出来る。 制約事項 System.ApplicationExceptionクラスから派生させなければならない。 ApplicationExceptionクラスは、固有の例外を作成する必要がある際に用いられる。 使用上の注意 try-catchはオーバーヘッドが大きいので、使用すべき場所で使用する(予測が立てにくい処理)
https://w.atwiki.jp/mudaai/pages/2.html
メニュー トップページ 目的 無駄合判定投票ページ 分類方法 狭義無駄合 広義無駄合 最広義無駄合 例外無駄合 最広義の反例(?) グレーゾーン(1)広義で無駄、狭義で有効 グレーゾーン(2)例外無駄合XY(Z)型、XYZ型 連続合駒における無駄合判定 グレーゾーン(3)例外無駄合XYZ型-再帰型 グレーゾーン(4)例外無駄合XYZ型-復元型 無駄合wiki結論 リンク @wikiご利用ガイド 握り詰大会←たにー(偽者)さん設立 ちょっとやってみる←soga氏による無駄合考察 ここを編集
https://w.atwiki.jp/beautiful_world/pages/38.html
@Transactional このアノテーションは、インタフェース、クラス、あるいはメソッドがトランザクションであることを指定する。デフォルトのトランザクションセマンティクスは、read/write、PROPAGATION_REQUIRED、ISOLATION_DEFAULT、TIMEOUT_DEFAULTで、ExceptionではなくRuntimeException発生時にロールバックするというものである。 アノテーションのオプションのプロパティを使えばトランザクションの設定を変更することができる。 プロパティ 型 説明 propagation enum Propagation オプションのプロパゲーション設定(デフォルトは、PROPAGATION_REQUIRED) isolation enum Isolation オプションのアイソレーションレベル(デフォルトはISOLATION_DEFAULT) readOnly boolean read/writeあるいはリードオンリートランザクション(デフォルトはfalseもしくはread/write) rollbackFor Classオブジェクトの配列。Trowableからの派生クラスであること。 オプションで指定する、発生したときにロールバックする例外クラスの配列。デフォルトでは、チェック済みの例外ではロールバックせず、未チェックの(RuntimeExceptionから派生した)例外の場合にロールバック rollbackForClassname クラス名文字列の配列。クラスは、Trowableの派生であること。 オプションで指定する、発生したときにロールバックさせる例外クラスの名前の配列 noRollbackFor Classオブジェクトの配列。Trowableからの派生であること。 オプションで指定するロールバックさせない例外クラスの配列。 noRollbackForClassname クラス名文字列の配列。Trowableからの派生であること。 オプションで指定する、発生したときにロールバックさせない例外のクラス名の配列。
https://w.atwiki.jp/neetsdkasu/pages/13.html
C++に関するメモ コンストラクタでメンバ変数の初期化のあれ 書式付きの標準出力 例外処理について 例外処理について2 クラスに関するメモ テンプレートに関するメモ テンプレート部分特殊化 演算子のオーバーロードに関するメモ コンストラクタでメンバ変数の初期化のあれ 下記のコードのような初期化の式を見かけるが これはどうやらそれぞれのコンストラクタを呼んで初期化してるらしい すなわち、int a(10), b(20); と同義のコンストラクタ式である class Foo { int a, b; public Foo() a(10), b(20) {} }; 書式付きの標準出力 #include iostream using namespace std; int main() { cout.fill( 0 ); cout.width(5); cout 123 endl; // 00123 と表示される } iomanipというのを使うと次のように書ける #include iostream #include iomanip using namespace std; int main() { cout setfill( 0 ) setw(5) 123 endl; // 00123 と表示される } 例外処理について try節投げられた例外をcatch節で受け取る。 throwで例外を投げるが、投げられるのは例外型だけでなくいろんな型を投げることができる #include exception class MyException public std exception {}; class Hoge {}; void myfunc1() { throw MyException(); // コンストラクタを呼んで(?)使う } void myfunc2() { thorw 123; // 数値を投げることも可能、たいてい何でも投げれる } void myfunc3() { throw Hoge(); // こんなのだって投げられる! } void myfunc4() { MyException e; throw e; // コピーコンストラクタが呼ばれ別のインスタンスが投げられる // すなわち throw MyException(e); となる } void myfunc5() { MyException e; std exception *p = e; throw *p; // この場合は throw std exception(*p); のコピーコンストラクタになるので注意 } int main() { try { myfunc1(); } catch (MyException ex) { // このように参照型で受ける } catch (...) { // ドット3個で あらゆる例外を受け入れる } return 0; } 例外処理について2 関数宣言にどんな例外を投げるかを指示できる(C++11以降は非推奨らしい) void myfunc1() throw(MyException) { // MyExceptionを投げることがある } void myfunc2() throw(MyException, int) { // MyExceptionとintの2種類の例外を投げることがある } void myfunc3() throw() { // どんな例外も投げないことを意味する } class Foo { public Foo(int v) throw() val(v) { } // コンストラクタにも例外について記述できる int value() const throw() { // 当然メソッドにもつけられる return val; } private int val; }; Cpp C++ .