moodle

例外

Text第13章(p.78)

  • 例外(exception):適切なエラー処理を行うための機構
    • throw:例外が投げられた.例外がthrowされた.
    • catch:例外を受ける.例外をcatchする.
Expand allFold all
  1
  2
  3
  4
  5
-
-
-
-
!
try{
     // 例外のスロー
 } catch(Exception e){
     //例外のキャッチ
 }

サンプルコード:WhatYourName.java

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 
 
-
-
|
|
-
|
|
-
|
!
!
!
import java.io.*;
 
public class WhatYourName{
    public static void main(String[] args){
        System.out.println("What Your Name !: ");
        BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
        try{
            String line = reader.readLine();
            System.out.println(line + "さん,こんにちは");
        }catch (IOException e){
            System.out.println(e);
        }
    }
}

WhatYourAge.java

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 
-
-
|
|
-
|
|
|
-
|
-
|
|
!
!
!
import java.io.*;
 
public class WhatYourAge{
    public static void main(String[] args){
        System.out.println("何歳ですか !: ");
        BufferedReader reader = new BufferedReader (new InputStreamReader(System.in));
        try{
            String line = reader.readLine();
            int    age = Integer.parseInt(line);
            System.out.println(age + "才ですね.");
        }catch (IOException e){
            System.out.println(e);
        }catch (NumberFormatException e){
            System.out.println("正しくありません");
            System.out.println(e);
        }
    }
}

例外の種類

例外内容
ArrayInexOutOfBoundsException配列の長さを超えた参照
FileNotFoundExceptionファイルが見つからない
IllegalArgumentException引数が異常
OutOfMemoryErrorメモリが足りない

パッケージ

第17章(p.192)

  • 関連する一連のクラスを名前で一まとめに管理する.
  • public宣言をしたクラスは,パッケージの外から利用できる
  • public宣言をしていないクラスは,パッケージの中からしか利用できない.

クラス名の完全限定名

java.util.Randam

ここで,

  • java.utilは,パッケージ名
  • Randamは,クラス名
  • java.utilパッケージに含まれているRandomクラス という意味
    java.util.Randam r = new java.util.Ramdom();
    のように利用する.このとき,パッケージ名を含めて指定した名前のことを完全限定名(Fully Qualified Name)という.
  • クラスの完全限定名
    パッケージ名.クラス名

importによるクラスの取り込み

import java.util.*;

ようにimportを使うことで,指定したパッケージに含まれるpublicなクラスを利用できる.

  • タイプ・インポート・オン・デマンド宣言
    import java.util.*;
  • シングル・タイプ・インポート宣言
    import java.util.Random;
    上記のimportで宣言しておけば
    Random r = new Random();
    のようにクラス名の指定だけで利用できる.

パッケージの宣言

パッケージをつくるには,packageを使う.

package  mypkg;

TextParserクラスをmypkgパッケージに含めたい場合:

package mypkg;

class TextParser {
    ....
}

このとき,TextParserは,publicが付いていないので,mypkg内からのみこのクラスを利用できる.

package mypkg;

public class TextParser {
    ....
}

この場合,TextParserクラスは,publicで宣言されているので,mypkgの外からも利用できる.このとき,ファイル名も,TextParser.javaにする必要がある.

robocodeのサンプルコード

Expand allFold all
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 
 
-
!
-
|
!
 
-
-
|
!
-
-
|
|
-
-
!
|
|
|
!
!
|
-
|
!
-
|
!
|
-
|
!
-
|
!
|
!
package myrobot;
import robocode.*;
//import java.awt.Color;
 
/**
 * MyFirstRobot - a robot by (your name here)
 */
public class MyFirstRobot extends Robot
{
    /**
     * run: MyFirstRobot's default behavior
     */
    public void run() {
        // After trying out your robot, try uncommenting the import at the top,
        // and the next line:
        //setColors(Color.red,Color.blue,Color.green);
        while(true) {
            // Replace the next 4 lines with any behavior you would like
            ahead(100);
            turnGunRight(360);
            back(100);
            turnGunRight(360);
        }
    }
 
    /**
     * onScannedRobot: What to do when you see another robot
     */
    public void onScannedRobot(ScannedRobotEvent e) {
        fire(1);
    }
 
    /**
     * onHitByBullet: What to do when you're hit by a bullet
     */
    public void onHitByBullet(HitByBulletEvent e) {
        turnLeft(90 - e.getBearing());
    }
    
}


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-06-20 (木) 14:45:23 (2286d)