フレームワーク (9) - DBIx::Simple::DeadObject #
今日は DBIx::Simple
周り
DB 関連のエラー拾うために、よく
$dbh->select(…) or die $dbh->error;
とかするが、わざとエラーにしてみるために
$dbh->disconnect;
$dbh->select(…) or die $dbh->error;
してみたら、
Database object no longer usable (because of …)
と返ってきたので、さらに実験
use DBIx::Simple;
use Data::Dumper;
my $dbh = DBIx::Simple->connect('dbi:SQLite:dbname=dum.db');
print Dumper $dbh;
$dbh->disconnect;
print Dumper $dbh;
実行結果
$VAR1 = bless( {
'lc_columns' => 1,
'dbh' => bless( {}, 'DBI::db' ),
'dbd' => 'SQLite'
}, 'DBIx::Simple' );
$VAR1 = bless( {
'what' => 'Database object',
'cause' => 'DBIx::Simple=HASH(0x812c15c)->disconnect at db.pl line 7'
}, 'DBIx::Simple::DeadObject' );
おー、なるほど
if ( ref $dbh eq 'DBIx::Simple::DeadObject' ) {
print 'DB object has been already a-born.';
undef $dbh;
}
とかできるのね。使うことがあるかどうかはわからないけど