エラーハンドラ
日本語 | 違反処理者 |
英語 | error handler |
ふりがな | えらーはんどら |
フリガナ | エラーハンドラ |
エラーが発生した場合に、そのエラーを処理する機能、クラス、メソッド等のこと。
何らかのエラーが発生した際の処理を委託するためのハンドラ。
イベントハンドラの「イベント」が「エラー」になったものと考えればよい。
Javaでは、一般にエラーに対する処理には例外を使用するため、エラーハンドラはあまり使用されない。また、例外処理をエラーハンドラとは呼ばない。
そのため、Javaに関連して「エラーハンドラ」という単語が出てきた場合、それはJavaの外のシステムや、Javaを使用するシステムで発生したエラーを処理するハンドラのことを指す場合が多い。
何らかのエラーが発生した際の処理を委託するためのハンドラ。
イベントハンドラの「イベント」が「エラー」になったものと考えればよい。
Javaでは、一般にエラーに対する処理には例外を使用するため、エラーハンドラはあまり使用されない。また、例外処理をエラーハンドラとは呼ばない。
そのため、Javaに関連して「エラーハンドラ」という単語が出てきた場合、それはJavaの外のシステムや、Javaを使用するシステムで発生したエラーを処理するハンドラのことを指す場合が多い。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// 計算クラスにエラーハンドラをセットします。
Calc calc = new Calc();
calc.setErrorHandler( new SampleErrorHandler() );
// nullを渡してわざと例外を発生させます。
int result = calc.toInt( null );
// java.lang.NumberFormatException: null
// at java.lang.Integer.parseInt(Integer.java:394)
// at java.lang.Integer.parseInt(Integer.java:476)
// at Calc.toInt(Sample.java:66)
// at Sample.main(Sample.java:10)
System.out.println( result );
// 0
// これがエラーハンドラの一般的な例。
// ただし、こういった複雑なシステムを利用するよりは、
// 素直に例外を投げた方がいいため、Javaではあまり
// 使用されません。
}
}
/**
* エラーハンドラのためのインターフェイス。
*/
interface ErrorHandler
{
/**
* エラーが発生した際に呼び出されるメソッド。
*/
public void errored( Exception e );
}
/**
* エラーハンドラクラス。
*/
class SampleErrorHandler implements ErrorHandler
{
/**
* エラーが発生した際に呼び出されるメソッド。
*/
public void errored( Exception e )
{
// とりあえずスタックトレースを出力します。
e.printStackTrace();
}
}
/**
* 変換クラス。
*/
class Calc
{
/** 使用するエラーハンドラ。 */
private ErrorHandler errorHandler = null;
/**
* エラーハンドラをセットするメソッド。
*/
public void setErrorHandler( ErrorHandler errorHandler )
{
this.errorHandler = errorHandler;
}
/**
* 数値変換します。
* 例外が発生したら、ErrorHandlerインターフェイスのerrored()メソッドを呼び出したあと、
* 0を返します。
*/
public int toInt( String string )
{
try
{
return Integer.parseInt( string );
}
catch( Exception e )
{
// 例外が発生したら、エラーハンドラに渡します。
errorHandler.errored( e );
return 0;
}
}
}
public class Sample
{
public static void main( String[] args )
{
// 計算クラスにエラーハンドラをセットします。
Calc calc = new Calc();
calc.setErrorHandler( new SampleErrorHandler() );
// nullを渡してわざと例外を発生させます。
int result = calc.toInt( null );
// java.lang.NumberFormatException: null
// at java.lang.Integer.parseInt(Integer.java:394)
// at java.lang.Integer.parseInt(Integer.java:476)
// at Calc.toInt(Sample.java:66)
// at Sample.main(Sample.java:10)
System.out.println( result );
// 0
// これがエラーハンドラの一般的な例。
// ただし、こういった複雑なシステムを利用するよりは、
// 素直に例外を投げた方がいいため、Javaではあまり
// 使用されません。
}
}
/**
* エラーハンドラのためのインターフェイス。
*/
interface ErrorHandler
{
/**
* エラーが発生した際に呼び出されるメソッド。
*/
public void errored( Exception e );
}
/**
* エラーハンドラクラス。
*/
class SampleErrorHandler implements ErrorHandler
{
/**
* エラーが発生した際に呼び出されるメソッド。
*/
public void errored( Exception e )
{
// とりあえずスタックトレースを出力します。
e.printStackTrace();
}
}
/**
* 変換クラス。
*/
class Calc
{
/** 使用するエラーハンドラ。 */
private ErrorHandler errorHandler = null;
/**
* エラーハンドラをセットするメソッド。
*/
public void setErrorHandler( ErrorHandler errorHandler )
{
this.errorHandler = errorHandler;
}
/**
* 数値変換します。
* 例外が発生したら、ErrorHandlerインターフェイスのerrored()メソッドを呼び出したあと、
* 0を返します。
*/
public int toInt( String string )
{
try
{
return Integer.parseInt( string );
}
catch( Exception e )
{
// 例外が発生したら、エラーハンドラに渡します。
errorHandler.errored( e );
return 0;
}
}
}
// Sample.java public class Sample { public static void main( String[] args ) { // 計算クラスにエラーハンドラをセットします。 Calc calc = new Calc(); calc.setErrorHandler( new SampleErrorHandler() ); // nullを渡してわざと例外を発生させます。 int result = calc.toInt( null ); // java.lang.NumberFormatException: null // at java.lang.Integer.parseInt(Integer.java:394) // at java.lang.Integer.parseInt(Integer.java:476) // at Calc.toInt(Sample.java:66) // at Sample.main(Sample.java:10) System.out.println( result ); // 0 // これがエラーハンドラの一般的な例。 // ただし、こういった複雑なシステムを利用するよりは、 // 素直に例外を投げた方がいいため、Javaではあまり // 使用されません。 } } /** * エラーハンドラのためのインターフェイス。 */ interface ErrorHandler { /** * エラーが発生した際に呼び出されるメソッド。 */ public void errored( Exception e ); } /** * エラーハンドラクラス。 */ class SampleErrorHandler implements ErrorHandler { /** * エラーが発生した際に呼び出されるメソッド。 */ public void errored( Exception e ) { // とりあえずスタックトレースを出力します。 e.printStackTrace(); } } /** * 変換クラス。 */ class Calc { /** 使用するエラーハンドラ。 */ private ErrorHandler errorHandler = null; /** * エラーハンドラをセットするメソッド。 */ public void setErrorHandler( ErrorHandler errorHandler ) { this.errorHandler = errorHandler; } /** * 数値変換します。 * 例外が発生したら、ErrorHandlerインターフェイスのerrored()メソッドを呼び出したあと、 * 0を返します。 */ public int toInt( String string ) { try { return Integer.parseInt( string ); } catch( Exception e ) { // 例外が発生したら、エラーハンドラに渡します。 errorHandler.errored( e ); return 0; } } }