トップページ
ぬるぽ関連トップ
さて、ここでは実際に「ぬるぽ」を発生させてみることにしよう。用意するものは…
1.パソコン本体(これが無いと始まらないね)
2.何でも(・∀・)イイ!!のでOS(ただし、後述のJava SEが用意されているものに限る)
3.Java SE(いわゆるJava開発キット。http://www.oracle.com/technetwork/java/javase/downloads/index.htmlか
ら入手しる!!)
4.サンプルソースを打ち込むためのテキストエディタ(メモ帳やviでも十分事足りてしまう)
…これだけ揃えば、いつでもぬるぽが発生させられるぜぃw
まず、J2SEをインストールするところから始めるのだが、Java入門ページじゃあるまいし、ここでは省略。
次に、こんなソースを打ち込んでみる(nullpo01.java
という名前でセーブしてね。基本的にクラス名とファイル名が違うとエラーになるから)。
打ち込むのが('A`)マンドクセな人は、ここからダウンロードしてね。
|
public class nullpo01 { public static void main(String args[]){ int array[] = null; array[0] = 10; // この行でぬるぽが発生するぞ!! } } |
|
D:\PROG\Java>javac nullpo01.java D:\PROG\Java> |
|
D:\PROG\Java>java nullpo01 Exception in thread "main" java.lang.NullPointerException at nullpo01.main(nullpo01.java:5) D:\PROG\Java> |
…さて、ぬるぽを発生させられたところまではいいが、この方法では発生させた時点でABENDしてしまう。
ぬるぽが発生しない想定で組めば、これでも問題ないが、大抵はスローされた例外をキャッチさせてABENDを未然に防ぐ。
(てゆーか、ぬるぽを発生させない想定で組むことなんて不可能w)
そこで、ぬるぽ発生によるABENDを未然に防ぐ方法…ある意味これがホントの「ガッ」になるのかな?
単純にtry~catchでぬるぽが発生したときのハンドリング処理を追加するだけなんだけどねw
このソースを打ち込んでみる(nullpo02.java
という名前でセーブしてね。基本的にクラス名とファイル名が違うとエラーになるから)。
打ち込むのが('A`)マンドクセな人は、ここからダウンロードしてね。
|
import java.lang.*; // こいつを追加 public class nullpo02 // クラス名を変更しる!! { public static void main(String args[]){ int array[] = null; try { // 例外が発生しそうな箇所をこいつで囲む!! array[0] = 10; // この行でぬるぽが発生するぞ!! } catch(NullPointerException e) { // 不幸にも例外が発生したときに実行する処理 System.out.println("ぬるぽ発生!!"); } System.out.println("処理終了ォォ"); } } |
|
D:\PROG\Java>java nullpo02 ぬるぽ発生!! 処理終了ォォ D:\PROG\Java> |