2012年12月07日

≪Java≫ 例外処理について(オーバーロード・オーバーライド)

≪Java≫ 例外処理について(オーバーロード・オーバーライド)


■ オーバーロード


 ・新しい例外や範囲の広い例外を宣言 [ OK ]

■ オーバーライド


 【非チェック例外】
 ・親クラスのメソッドがどんな例外を宣言していても、新たに非チェック例外(実行時例外)を投げる [ OK ]

 【チェック例外】
 ・親クラスに例外宣言がなく、新たに例外を投げる [ NG ]
 ・親クラスでの例外宣言よりも、範囲の広いチェック例外を投げる [ NG ]

 ・親クラスでの例外宣言よりも、範囲の狭いチェック例外を投げる [ OK ]

 【全般】
 ・親クラスでどんな例外を投げていても、例外を投げないようにする [ OK ]

≪参考≫
 チェック例外・非チェック例外については、『 ≪JAVA≫ 実行時例外 代表例 一覧 』参照




DVD から iPad や android 用の mp4 ファイル(動画ファイル)を作成(変換)する方法

DVD から iPad や android 用の mp4 ファイル(動画ファイル)を作成(変換)する方法


色々勉強中なので、『画像付き』 とか 『詳しい解説付き』 とかできませんが、
試行錯誤した結果 成功したので、メモ程度に記載します。

@ フリーソフト『 DVD Decrypter 』で DVD データを FILE (フォルダで言うと「VIDEO_TS」、拡張子で言うと「.VOB」や「.IFO」や「.BUP」)として PC の任意のフォルダに抽出する。

A @で抽出したデータを、これまたフリーソフト『 DVD Shrink 』で、バックアップする。(これによってデータが若干軽くなる)

B Aで作成したデータの中の、拡張子「.VOB」データを、またまたフリーソフト『 VOBMerge 』で、結合する。(@やAの状態だと、データがいくつかに分かれてしまい、再生時に面倒)

C Bで結合したデータ「.VOB」を、やっぱりフリーソフト『 Handbrake 』を使って、iPad や android 用の mp4 データ(拡張子は、「.m4v」か「.mp4」。どっちがよいかは、Handbrakeの 「Presets」機能で自動で判断してくれる)として変換する。

以上

各フリーソフトの使い方はググってくださいませ<(_ _)>
(そのうち時間が出来たら詳しく紹介するかもです)




posted by キョウ at 12:54| Comment(0) | TrackBack(0) | 9.iPad (Apple) | このブログの読者になる | 更新情報をチェックする

2012年12月04日

≪Java≫ 実行時例外 代表例 一覧

≪Java≫ 実行時例外 代表例 一覧



■■■ 体系



Object - Throwable - Error → @
           |
            - Exception → A


続き


Exception - チェック例外 → B
      |
      - 非チェック例外 → C


@ (JVMのメモリー不足などで回復不能:致命的な状態)
  ↑ AssertionError 等
A (予定通り実行できない状態が発生:回復可能)
B (例外の発生源が特定できるので、あらかじめ例外をチェックするコードの記述が必要。記述がないとコンパイルエラーとなる
C (プログラムエラーによる例外エラー。発生源が限定できないので対処は任意。)


■■■ チェック例外の代表例 一覧


   → 例外発生時の対処を記述しなければならない

■ IOExeption 
(サブクラスに、FileNotFoundException)


   → 入出力時の例外。
     上記Bにあたるので、あらかじめ try~chach 文を書いておかないとコンパイルエラーとなる。

 【記述例】
import java.io.FileReader;
import java.io.FileNotFoundException; → C
import java.io.IOException; → D
※ ↑ C、Dを使用する時点で、例外処理が必須
public class Exec {
 public static void main(String[] args) {
  readFile();
 }
 public static void readFile(){
  FileReader in = null;
  try{
   in = new FileReader("test.exe");
   int c = in.read();
   System.out.println((char)c);
   if(in!=null) in.close();
  }catch(FileNotFoundException e){
   System.out.println("ファイルが見つからない");
  }catch(IOException e){
   System.out.println("ファイルを読みこめない");
  }
 }
}

     また、呼び出し先メソッドで throw(強制的に例外は発生させる) 文を使う場合は、throws(例外を無視する)宣言が必要。

 【記述例】
import java.io.FileReader;
import java.io.FileNotFoundException;
import java.io.IOException;

public class Exec {
 public static void main(String[] args) {
  try{
   readFile();
  }catch(FileNotFoundException e){
   System.out.println("ファイルが見つからない");
  }catch(IOException e){
   System.out.println("ファイルを読みこめない");
  }
 }
 public static void readFile() throws IOException{
  FileReader in = null;
  try{
   in = new FileReader("test.exe");
   int c = in.read();
   System.out.println((char)c);
  }finally{
   if(in!=null) in.close();
  }
 }
}


■■■ 非チェック例外の代表例 一覧


   → 例外発生時の対処を書くかは任意

RuntimeException
   |
    - ClassCastException → @

    - IllegalArgumentException → A
       |
        - NumberFormatException → B
   |
    - IllegalStateException → C
   |
    - IndexOutOfBoundsException → D
       |
        - ArrayIndexOutOfBoundsException → E
   |
    - NullPointerException → F
   |
    - ArithmenticException → G

■ @ ClassCastException
 (キャストの失敗)


  ⇒ 親クラス→サブクラスでオブジェクトの実体が、スーパークラス、または継承関係にないクラスになっている。

 【例1】
public class sample {
 public static void main(String[] args) {
  Food a =new Food();
  Fruit d =(Fruit)a; ⇒ オブジェクトが親クラスの型
 }
}
class Food {}
class Fruit extends Food{}

 【例2】
public class sample{
public static void main(String[] args){
Object o = new Integer(100);
String str = (String) o; ⇒ 継承関係にない


■ A IllegalArgumentException
 (不正な引用)


  ⇒ 不正な引数や不適切な引数をメソッドに渡した時に発生する。
    (オブジェクトの値がNullの場合等)



■ B NumberFormatException
 (数値形式文字列の記述誤り)


  ⇒ 文字列を数値型に変換するときに、文字列の形式が正しくなく発生。

 【例】
  (正) int n = Integer.parseInt("1.0");
  (誤) int n = Integer.parseInt("1,0"); ⇒ コンマ違い
  (誤) int n = Integer.parseInt("str"); ⇒ 数字ですらない


■ C IllegalStateException
 (不正な状態での呼び出し)


  ⇒ 不適切な状態でメソッドを呼び出した時の例外

 【例】
import java.util.Scanner;
public class sample {
 public static void main(String[] args) {
 Scanner s = new Scanner(System.in);
 s.close(); → クローズ
 String str = s.next(); ⇒ 閉じた後に使用している
 }
}


■ D IndexOutOfBoundsException
 (不正な状態での呼び出し [ index = 索引番号 ] )


  ⇒ 配列や文字列の操作で、範囲を超えてアクセス

 【例】
public class sample {
 public static void main(String[] args) {
  String s= "abc";
  char c = s.charAt(5); ⇒ 文字列の文字は3つしかない 
 }
}


■ E ArrayIndexOutOfBoundsException
 (不正な状態での呼び出し [ array = 要素番号 ] )


  ⇒ 配列や文字列の操作で、範囲を超えてアクセス

 【例】
public class sample {
 public static void main(String[] args) {
  int[] n = {1,2,3};
  int m = n[5]; ⇒ 配列は3つしかない
 }
}


■ F NullPointerException
 (使用するオブジェクトが null )


  ⇒ nullの配列やクラスオブジェクトを参照

 【例】
public class Test7 {
 public static void main(String[] args) {
  String str = null;
  System.out.println(str.equals("abc")); ⇒ str の参照先がない
 }
}


■ G ArithmenticException
 (算術エラー)


  ⇒ 0 で int の値を割る等

 【例】
public class Test8 {
 public static void main(String[] args) {
 int n = 10 / 0;
 }
}