rgb192
asked on
is php_errormsg a usable variable. Why is the try catch not working
<?php
class ShopProduct {
public $title;
private $discount = 0;
private $producerMainName;
private $producerFirstName;
protected $price;
function __construct( $title, $firstName,
$mainName, $price ) {
$this->title = $title;
$this->producerFirstName = $firstName;
$this->producerMainName = $mainName;
$this->price = $price;
}
function setDiscount( $num ) {
$this->discount=$num;
}
function getPrice() {
return ($this->price - $this->discount);
}
function getProducer() {
return "{$this->producerFirstName}".
" {$this->producerMainName}";
}
function getSummaryLine() {
$base = "{$this->title} ( {$this->producerMainName}, ";
$base .= "{$this->producerFirstName} )";
return $base;
}
}
class CdProduct extends ShopProduct {
public $playLength;
function __construct( $title, $firstName,
$mainName, $price, $playLength ) {
parent::__construct( $title, $firstName,
$mainName, $price );
$this->playLength = $playLength;
}
function getPlayLength() {
return $this->playLength;
}
function getSummaryLine() {
$base = parent::getSummaryLine();
$base .= ": playing time - {$this->playLength}";
return $base;
}
}
class BookProduct extends ShopProduct {
public $numPages;
function __construct( $title, $firstName,
$mainName, $price, $numPages ) {
parent::__construct( $title, $firstName,
$mainName, $price );
$this->numPages = $numPages;
}
function getPrice() {
return $this->price;
}
function getNumberOfPages() {
return $this->numPages;
}
function getSummaryLine() {
$base = parent::getSummaryLine();
$base .= ": page count - {$this->numPages}";
return $base;
}
}
class ShopProductWriter {
private $products1z = array();
public function addProduct( /*ShopProduct*/ $shopProduct ) {
$this->products1z[] = $shopProduct;
}
public function getProducts(){
return $this->products1z;
}
public function write() {
try{
$str = "";
foreach ( $this->getProducts() as $shopProduct ) {
$str .= "{$shopProduct->title}: ";
$str .= $shopProduct->getProducer();
$str .= " ({$shopProduct->getPrice()})\n";
}
print $str;
}
catch(exception $e){
echo '<h1>phperror message:'.$e->getMessage().'</h1>';
}
}//end function write
}//end class shopproductwriter
$product1 = new CdProduct("cd1", "bob", "bobbleson", 4, 50 );
$product2 = new BookProduct("book1", "harry", "harrelson", 4, 30 );
$writer = new ShopProductWriter();
$writer->addProduct( $product1 );
$writer->addProduct( $product2 );
$testarray=array(1,2,3,4,5,6);
$writer->addProduct($testarray);
$writer->write();
?>
from
matt zandstra php objects patterns and practice
I added
foreach ( $this->getProducts() as $shopProduct ) {
getproducts() method
I added $testarray to attempt to pass array when object is required
I added try catch
execution stops but I would like a try catch to print error message
screenshot: from 'locals window'
is $php_errormsg an actual $string that I can use in the script?
If you want the catch() block executed you might try throwing() an exception inside the try{} code.
See here: http://www.php.net/manual/en/internals2.opcodes.throw.php
public function write() {
try{
$error ='Here your error message';
throw new Exception($error);
$str = "";
foreach ( $this->getProducts() as $shopProduct ) {
$str .= "{$shopProduct->title}: ";
$str .= $shopProduct->getProducer();
$str .= " ({$shopProduct->getPrice()})\n";
}
print $str;
}
catch(exception $e){
echo '<h1>phperror message:'.$e->getMessage().'</h1>';
}
}//end function write
ASKER
Try and Catch are terms of art. Just because an error occurs, does not mean that it is catchable.
What is your error_reporting() level?
What is your error_reporting() level?
ASKER
Try and Catch are terms of art. Just because an error occurs, does not mean that it is catchable.
What is your error_reporting() level?
I do not see error level but here is output of phpinfo()
PHP LogoPHP Version 5.4.23
System Windows NT ACER-PC 6.1 build 7601 (Windows 7 Home Premium Edition Service Pack 1) i586
Build Date Dec 11 2013 00:52:57
Compiler MSVC9 (Visual C++ 2008)
Architecture x86
Configure Command cscript /nologo configure.js "--enable-snapshot-build" "--disable-isapi" "--enable-debug-pack" "--without-mssql" "--without-pdo-mssql" "--without-pi3web" "--with-pdo-oci=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8=C:\php-sdk\oracle\instantclient10\sdk,shared" "--with-oci8-11g=C:\php-sdk\oracle\instantclient11\sdk,shared" "--enable-object-out-dir=../obj/" "--enable-com-dotnet=shared" "--with-mcrypt=static" "--disable-static-analyze" "--with-pgo"
Server API CGI/FastCGI
Virtual Directory Support enabled
Configuration File (php.ini) Path C:\Windows
Loaded Configuration File C:\Program Files (x86)\NuSphere\PhpED\php54\php.ini
Scan this dir for additional .ini files (none)
Additional .ini files parsed (none)
PHP API 20100412
PHP Extension 20100525
Zend Extension 220100525
Zend Extension Build API220100525,TS,VC9
PHP Extension Build API20100525,TS,VC9
Debug Build no
Thread Safety enabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support disabled
IPv6 Support enabled
DTrace Support disabled
Registered PHP Streams php, file, glob, data, http, ftp, zip, compress.zlib, phar
Registered Stream Socket Transports tcp, udp
Registered Stream Filters convert.iconv.*, mcrypt.*, mdecrypt.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, zlib.*
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
with DBG v6.1.7, (C) 2000,2014, by Dmitri Dmitrienko
--------------------------------------------------------------------------------
PHP Credits
--------------------------------------------------------------------------------
Configuration
bcmath
BCMath support enabled
Directive Local Value Master Value
bcmath.scale 0 0
calendar
Calendar support enabled
cgi-fcgi
Directive Local Value Master Value
cgi.check_shebang_line 1 1
cgi.discard_path 0 0
cgi.fix_pathinfo 1 1
cgi.force_redirect 1 1
cgi.nph 0 0
cgi.redirect_status_env no value no value
cgi.rfc2616_headers 0 0
fastcgi.impersonate 0 0
fastcgi.logging 1 1
Core
PHP Version 5.4.23
Directive Local Value Master Value
allow_url_fopen On On
allow_url_include Off Off
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap no value no value
default_charset no value no value
default_mimetype text/html text/html
disable_classes no value no value
disable_functions no value no value
display_errors On On
display_startup_errors On On
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl On On
enable_post_data_reading On On
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 32767 32767
exit_on_timeout Off Off
expose_php On On
extension_dir C:\Program Files (x86)\NuSphere\PhpED\php54\extensions C:\Program Files (x86)\NuSphere\PhpED\php54\extensions
file_uploads On On
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .;C:\Program Files (x86)\NuSphere\PhpED\php54\..\include_lib .;C:\Program Files (x86)\NuSphere\PhpED\php54\..\include_lib
log_errors On On
log_errors_max_len 1024 1024
mail.add_x_header On On
mail.force_extra_parameters no value no value
mail.log no value no value
max_execution_time 300 300
max_file_uploads 20 20
max_input_nesting_level 64 64
max_input_time -1 -1
max_input_vars 1000 1000
memory_limit 128M 128M
open_basedir no value no value
output_buffering 4096 4096
output_handler no value no value
post_max_size 8M 8M
precision 14 14
realpath_cache_size 16K 16K
realpath_cache_ttl 120 120
register_argc_argv Off Off
report_memleaks Off Off
report_zend_debug On On
request_order GP GP
sendmail_from no value no value
sendmail_path no value no value
serialize_precision 17 17
short_open_tag Off Off
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors On On
unserialize_callback_func no value no value
upload_max_filesize 2M 2M
upload_tmp_dir no value no value
user_dir no value no value
user_ini.cache_ttl 300 300
user_ini.filename .user.ini .user.ini
variables_order GPCS GPCS
windows.show_crt_warning Off Off
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
zend.detect_unicode On On
zend.enable_gc On On
zend.multibyte Off Off
zend.script_encoding no value no value
ctype
ctype functions enabled
curl
cURL support enabled
cURL Information 7.30.0
Age 3
Features
AsynchDNS Yes
Debug No
GSS-Negotiate Yes
IDN No
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO Yes
SSL Yes
SSPI Yes
krb4 No
libz Yes
CharConv No
Protocols dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, pop3s, rtsp, scp, sftp, smtp, smtps, telnet, tftp
Host i386-pc-win32
SSL Version OpenSSL/0.9.8y
ZLib Version 1.2.7
libSSH Version libssh2/1.4.2
date
date/time support enabled
"Olson" Timezone Database Version 2013.8
Timezone Database internal
Default timezone UTC
Directive Local Value Master Value
date.default_latitude 31.7667 31.7667
date.default_longitude 35.2333 35.2333
date.sunrise_zenith 90.583333 90.583333
date.sunset_zenith 90.583333 90.583333
date.timezone UTC UTC
dbg
DBG DBG php debugger, version 6.1.7, Copyright 2001, 2014 Dmitri Dmitrienko, http://www.nusphere.com/dbg
Version 6.1.7
Linked as a shared library.
Dbg SSL not available
Dbg ip security enabled.
Profiler enabled
Target PHP version 5.4.x
Server API CGI/FastCGI
Extensions API 220100525
Modules API 20100525
PHP API 20100412
Directive Local Value Master Value
debugger.enable_session_cookie On On
debugger.enabled On On
debugger.fail_silently Off Off
debugger.hosts_allow protected value protected value
debugger.hosts_deny protected value protected value
debugger.ignore_nops Off Off
debugger.IPv6_enabled On On
debugger.JIT.enabled Off Off
debugger.JIT.host clienthost clienthost
debugger.JIT.ignore_exceptions no value no value
debugger.JIT.port 7869 7869
debugger.JIT.trig_errors no value no value
debugger.JIT.trig_exceptions Exception Exception
debugger.net.chunksize 131072 131072
debugger.net.maxpacketsize 52428800 52428800
debugger.ports protected value protected value
debugger.profiler_enabled On On
debugger.session_nocache On On
debugger.timeout_seconds 300 300
dom
DOM/XML enabled
DOM/XML API Version 20031129
libxml Version 2.7.8
HTML Support enabled
XPath Support enabled
XPointer Support enabled
Schema Support enabled
RelaxNG Support enabled
ereg
Regex Library Bundled library enabled
fileinfo
fileinfo support enabled
version 1.0.5
filter
Input Validation and Filtering enabled
Revision $Id: 6496ccdb6a0a4792ced7f000203981dd4afe3657 $
Directive Local Value Master Value
filter.default unsafe_raw unsafe_raw
filter.default_flags no value no value
ftp
FTP support enabled
gd
GD Support enabled
GD Version bundled (2.1.0 compatible)
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.4.10
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 8
PNG Support enabled
libPNG Version 1.2.50
WBMP Support enabled
XPM Support enabled
libXpm Version 30411
XBM Support enabled
Directive Local Value Master Value
gd.jpeg_ignore_warning 0 0
hash
hash support enabled
Hashing Engines md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b fnv132 fnv164 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5
iconv
iconv support enabled
iconv implementation "libiconv"
iconv library version 1.14
Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1
json
json support enabled
json version 1.2.1
libxml
libXML support active
libXML Compiled Version 2.7.8
libXML Loaded Version 20708
libXML streams enabled
mcrypt
mcrypt support enabled
mcrypt_filter support enabled
Version 2.5.8
Api No 20021217
Supported ciphers cast-128 gost rijndael-128 twofish cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes arcfour
Supported modes cbc cfb ctr ecb ncfb nofb ofb stream
Directive Local Value Master Value
mcrypt.algorithms_dir no value no value
mcrypt.modes_dir no value no value
mhash
MHASH support Enabled
MHASH API Version Emulated Support
mysql
MySQL Support enabled
Active Persistent Links 0
Active Links 0
Client API version mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
Directive Local Value Master Value
mysql.allow_local_infile On On
mysql.allow_persistent On On
mysql.connect_timeout 60 60
mysql.default_host no value no value
mysql.default_password no value no value
mysql.default_port no value no value
mysql.default_socket no value no value
mysql.default_user no value no value
mysql.max_links Unlimited Unlimited
mysql.max_persistent Unlimited Unlimited
mysql.trace_mode Off Off
mysqli
MysqlI Support enabled
Client API library version mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
Active Persistent Links 0
Inactive Persistent Links 0
Active Links 0
Directive Local Value Master Value
mysqli.allow_local_infile On On
mysqli.allow_persistent On On
mysqli.default_host no value no value
mysqli.default_port 3306 3306
mysqli.default_pw no value no value
mysqli.default_socket no value no value
mysqli.default_user no value no value
mysqli.max_links Unlimited Unlimited
mysqli.max_persistent Unlimited Unlimited
mysqli.reconnect Off Off
mysqlnd
mysqlnd enabled
Version mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
Compression supported
SSL supported
Command buffer size 4096
Read buffer size 32768
Read timeout 31536000
Collecting statistics Yes
Collecting memory statistics No
Tracing n/a
Loaded plugins mysqlnd,example,debug_trace,auth_plugin_mysql_native_password,auth_plugin_mysql_clear_password
API Extensions mysql,mysqli,pdo_mysql
mysqlnd statistics
bytes_sent 0
bytes_received 0
packets_sent 0
packets_received 0
protocol_overhead_in 0
protocol_overhead_out 0
bytes_received_ok_packet 0
bytes_received_eof_packet 0
bytes_received_rset_header_packet 0
bytes_received_rset_field_meta_packet 0
bytes_received_rset_row_packet 0
bytes_received_prepare_response_packet 0
bytes_received_change_user_packet 0
packets_sent_command 0
packets_received_ok 0
packets_received_eof 0
packets_received_rset_header 0
packets_received_rset_field_meta 0
packets_received_rset_row 0
packets_received_prepare_response 0
packets_received_change_user 0
result_set_queries 0
non_result_set_queries 0
no_index_used 0
bad_index_used 0
slow_queries 0
buffered_sets 0
unbuffered_sets 0
ps_buffered_sets 0
ps_unbuffered_sets 0
flushed_normal_sets 0
flushed_ps_sets 0
ps_prepared_never_executed 0
ps_prepared_once_executed 0
rows_fetched_from_server_normal 0
rows_fetched_from_server_ps 0
rows_buffered_from_client_normal 0
rows_buffered_from_client_ps 0
rows_fetched_from_client_normal_buffered 0
rows_fetched_from_client_normal_unbuffered 0
rows_fetched_from_client_ps_buffered 0
rows_fetched_from_client_ps_unbuffered 0
rows_fetched_from_client_ps_cursor 0
rows_affected_normal 0
rows_affected_ps 0
rows_skipped_normal 0
rows_skipped_ps 0
copy_on_write_saved 0
copy_on_write_performed 0
command_buffer_too_small 0
connect_success 0
connect_failure 0
connection_reused 0
reconnect 0
pconnect_success 0
active_connections 0
active_persistent_connections 0
explicit_close 0
implicit_close 0
disconnect_close 0
in_middle_of_command_close 0
explicit_free_result 0
implicit_free_result 0
explicit_stmt_close 0
implicit_stmt_close 0
mem_emalloc_count 0
mem_emalloc_amount 0
mem_ecalloc_count 0
mem_ecalloc_amount 0
mem_erealloc_count 0
mem_erealloc_amount 0
mem_efree_count 0
mem_efree_amount 0
mem_malloc_count 0
mem_malloc_amount 0
mem_calloc_count 0
mem_calloc_amount 0
mem_realloc_count 0
mem_realloc_amount 0
mem_free_count 0
mem_free_amount 0
mem_estrndup_count 0
mem_strndup_count 0
mem_estndup_count 0
mem_strdup_count 0
proto_text_fetched_null 0
proto_text_fetched_bit 0
proto_text_fetched_tinyint 0
proto_text_fetched_short 0
proto_text_fetched_int24 0
proto_text_fetched_int 0
proto_text_fetched_bigint 0
proto_text_fetched_decimal 0
proto_text_fetched_float 0
proto_text_fetched_double 0
proto_text_fetched_date 0
proto_text_fetched_year 0
proto_text_fetched_time 0
proto_text_fetched_datetime 0
proto_text_fetched_timestamp 0
proto_text_fetched_string 0
proto_text_fetched_blob 0
proto_text_fetched_enum 0
proto_text_fetched_set 0
proto_text_fetched_geometry 0
proto_text_fetched_other 0
proto_binary_fetched_null 0
proto_binary_fetched_bit 0
proto_binary_fetched_tinyint 0
proto_binary_fetched_short 0
proto_binary_fetched_int24 0
proto_binary_fetched_int 0
proto_binary_fetched_bigint 0
proto_binary_fetched_decimal 0
proto_binary_fetched_float 0
proto_binary_fetched_double 0
proto_binary_fetched_date 0
proto_binary_fetched_year 0
proto_binary_fetched_time 0
proto_binary_fetched_datetime 0
proto_binary_fetched_timestamp 0
proto_binary_fetched_string 0
proto_binary_fetched_blob 0
proto_binary_fetched_enum 0
proto_binary_fetched_set 0
proto_binary_fetched_geometry 0
proto_binary_fetched_other 0
init_command_executed_count 0
init_command_failed_count 0
com_quit 0
com_init_db 0
com_query 0
com_field_list 0
com_create_db 0
com_drop_db 0
com_refresh 0
com_shutdown 0
com_statistics 0
com_process_info 0
com_connect 0
com_process_kill 0
com_debug 0
com_ping 0
com_time 0
com_delayed_insert 0
com_change_user 0
com_binlog_dump 0
com_table_dump 0
com_connect_out 0
com_register_slave 0
com_stmt_prepare 0
com_stmt_execute 0
com_stmt_send_long_data 0
com_stmt_close 0
com_stmt_reset 0
com_stmt_set_option 0
com_stmt_fetch 0
com_deamon 0
bytes_received_real_data_normal 0
bytes_received_real_data_ps 0
example statistics
stat1 0
stat2 0
odbc
ODBC Support enabled
Active Persistent Links 0
Active Links 0
ODBC library Win32
Directive Local Value Master Value
odbc.allow_persistent On On
odbc.check_persistent On On
odbc.default_cursortype Static cursor Static cursor
odbc.default_db no value no value
odbc.default_pw no value no value
odbc.default_user no value no value
odbc.defaultbinmode return as is return as is
odbc.defaultlrl return up to 4096 bytes return up to 4096 bytes
odbc.max_links Unlimited Unlimited
odbc.max_persistent Unlimited Unlimited
pcre
PCRE (Perl Compatible Regular Expressions) Support enabled
PCRE Library Version 8.32 2012-11-30
Directive Local Value Master Value
pcre.backtrack_limit 1000000 1000000
pcre.recursion_limit 100000 100000
PDO
PDO support enabled
PDO drivers mysql, sqlite
pdo_mysql
PDO Driver for MySQL enabled
Client API version mysqlnd 5.0.10 - 20111026 - $Id: e707c415db32080b3752b232487a435ee0372157 $
pdo_sqlite
PDO Driver for SQLite 3.x enabled
SQLite Library 3.7.7.1
pgsql
PostgreSQL Support enabled
PostgreSQL(libpq) Version 8.3.3
PostgreSQL(libpq) PostgreSQL 8.3.3, compiled by Visual C++ build 1500
Multibyte character support enabled
SSL support enabled
Active Persistent Links 0
Active Links 0
Directive Local Value Master Value
pgsql.allow_persistent On On
pgsql.auto_reset_persistent Off Off
pgsql.ignore_notice Off Off
pgsql.log_notice Off Off
pgsql.max_links Unlimited Unlimited
pgsql.max_persistent Unlimited Unlimited
Phar
Phar: PHP Archive support enabled
Phar EXT version 2.0.1
Phar API version 1.1.1
SVN revision $Id: c85687ef5cec51a63c41cffb9ec3972cb8c3f7f3 $
Phar-based phar archives enabled
Tar-based phar archives enabled
ZIP-based phar archives enabled
gzip compression enabled
bzip2 compression disabled (install pecl/bz2)
OpenSSL support disabled (install ext/openssl)
Phar based on pear/PHP_Archive, original concept by Davey Shafik.
Phar fully realized by Gregory Beaver and Marcus Boerger.
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle.
Directive Local Value Master Value
phar.cache_list no value no value
phar.readonly On On
phar.require_hash On On
Reflection
Reflection enabled
Version $Id: c4a7c554f00da47fe9cff384d18c532a1a959dff $
session
Session Support enabled
Registered save handlers files user
Registered serializer handlers php php_binary wddx
Directive Local Value Master Value
session.auto_start Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path C:\ProgramData\PHP\sessions C:\ProgramData\PHP\sessions
session.serialize_handler php php
session.upload_progress.cleanup On On
session.upload_progress.enabled On On
session.upload_progress.freq 1% 1%
session.upload_progress.min_freq 1 1
session.upload_progress.name PHP_SESSION_UPLOAD_PROGRESS PHP_SESSION_UPLOAD_PROGRESS
session.upload_progress.prefix upload_progress_ upload_progress_
session.use_cookies On On
session.use_only_cookies On On
session.use_trans_sid 0 0
SimpleXML
Simplexml support enabled
Revision $Id: 2358f2be6570ab413d0ead3a931a5365adf94af9 $
Schema support enabled
SPL
SPL support enabled
Interfaces Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject
Classes AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException
sqlite3
SQLite3 support enabled
SQLite3 module version 0.7
SQLite Library 3.7.7.1
Directive Local Value Master Value
sqlite3.extension_dir no value no value
standard
Dynamic Library Support enabled
Internal Sendmail Support for Windows enabled
Directive Local Value Master Value
assert.active 1 1
assert.bail 0 0
assert.callback no value no value
assert.quiet_eval 0 0
assert.warning 1 1
auto_detect_line_endings 0 0
default_socket_timeout 60 60
from no value no value
url_rewriter.tags a=href,area=href,frame=src,input=src,form=fakeentry a=href,area=href,frame=src,input=src,form=fakeentry
user_agent no value no value
tokenizer
Tokenizer Support enabled
wddx
WDDX Support enabled
WDDX Session Serializer enabled
xml
XML Support active
XML Namespace Support active
libxml2 Version 2.7.8
xmlreader
XMLReader enabled
xmlwriter
XMLWriter enabled
xsl
XSL enabled
libxslt Version 1.1.27
libxslt compiled against libxml Version 2.7.8
EXSLT enabled
libexslt Version 0.8.16
zip
Zip enabled
Extension Version $Id: 1f435bbb002ed00b47964fbd6e3b1cea9b161c07 $
Zip version 1.11.0
Libzip version 0.10.1
zlib
ZLib Support enabled
Stream Wrapper compress.zlib://
Stream Filter zlib.inflate, zlib.deflate
Compiled Version 1.2.7
Linked Version 1.2.7
Directive Local Value Master Value
zlib.output_compression Off Off
zlib.output_compression_level -1 -1
zlib.output_handler no value no value
Additional Modules
Module Name
Environment
Variable Value
ALLUSERSPROFILE C:\ProgramData
APPDATA C:\Users\Acer\AppData\Roaming
APR_ICONV_PATH C:\svn\iconv
asl.log Destination=file
CHROME_ALLOCATOR TCMALLOC
CLASSPATH .;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
CommonProgramFiles C:\Program Files (x86)\Common Files
CommonProgramFiles(x86) C:\Program Files (x86)\Common Files
CommonProgramW6432 C:\Program Files\Common Files
COMPUTERNAME ACER-PC
ComSpec C:\Windows\system32\cmd.exe
FP_NO_HOST_CHECK NO
HOMEDRIVE C:
HOMEPATH \Users\Acer
LOCALAPPDATA C:\Users\Acer\AppData\Local
LOGONSERVER \\ACER-PC
MOZ_PLUGIN_PATH C:\Program Files\Tracker Software\PDF Viewer\Win32\
NTIPath C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NewTech Infosystems\NTI Backup Now 5\;
NUMBER_OF_PROCESSORS 4
OS Windows_NT
Path C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x86;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x64;C:\Program Files (x86)\Windows Live\Shared;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\DTS\Binn;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn;C:\Program Files (x86)\WinSCP;C:\svn\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Smart Projects\IsoBuster;C:\Program Files (x86)\QuickTime\QTSystem;C:\Program Files (x86)\Bitvise Tunnelier;C:\Program Files (x86)\Common Files\SYSTEM\MSMAPI\1033;C:\Program Files (x86)\WinSCP\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Users\Acer\AppData\Roaming\PEAR;C:\Users\Acer\AppData\Roaming\PEAR\pear\PHPUnit;C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby1.9.3\bin;C:\Ruby192\bin;C:\Program Files\Java\jdk1.7.0\bin; C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files (x86)\HMA! Pro VPN\bin;C:\SocketeQ\windowsandroid_root\system\bin;C:\SocketeQ\windowsandroid_root\system\lib
PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.RB;.RBW
Pathtem C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
PHPRC no value
PHPRC~ C:\PHP5\
PHP_PEAR_BIN_DIR C:\Users\Acer\AppData\Roaming\PEAR
PHP_PEAR_DATA_DIR C:\Users\Acer\AppData\Roaming\PEAR\data
PHP_PEAR_DOC_DIR C:\Users\Acer\AppData\Roaming\PEAR\docs
PHP_PEAR_INSTALL_DIR C:\Users\Acer\AppData\Roaming\PEAR\pear
PHP_PEAR_PHP_BIN C:\Program Files (x86)\NuSphere\PhpED\php54\php.exe
PHP_PEAR_SYSCONF_DIR C:\Users\Acer\AppData\Roaming\PEAR
PHP_PEAR_TEST_DIR C:\Users\Acer\AppData\Roaming\PEAR\tests
PROCESSOR_ARCHITECTURE x86
PROCESSOR_ARCHITEW6432 AMD64
PROCESSOR_IDENTIFIER Intel64 Family 6 Model 37 Stepping 2, GenuineIntel
PROCESSOR_LEVEL 6
PROCESSOR_REVISION 2502
ProgramData C:\ProgramData
ProgramFiles C:\Program Files (x86)
ProgramFiles(x86) C:\Program Files (x86)
ProgramW6432 C:\Program Files
PSModulePath C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
PUBLIC C:\Users\Public
QTJAVA C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
SESSIONNAME Console
SystemDrive C:
SystemRoot C:\Windows
TEMP C:\Users\Acer\AppData\Local\Temp
TMP C:\Users\Acer\AppData\Local\Temp
USERDOMAIN Acer-PC
USERNAME Acer
USERPROFILE C:\Users\Acer
windir C:\Windows
WINDOWSANDROID_ROOT C:\SocketeQ\windowsandroid_root
PHP_FCGI_MAX_REQUESTS 250
PHP Variables
Variable Value
_REQUEST["DBGSESSID"] -1
_GET["DBGSESSID"] -1
_COOKIE["DBGSESSID"] no value
_COOKIE["PHPSESSID"] g0j7o618up25l5oqsghdisb277
_SERVER["ALLUSERSPROFILE"] C:\ProgramData
_SERVER["APPDATA"] C:\Users\Acer\AppData\Roaming
_SERVER["APR_ICONV_PATH"] C:\svn\iconv
_SERVER["asl_log"] Destination=file
_SERVER["CHROME_ALLOCATOR"] TCMALLOC
_SERVER["CLASSPATH"] .;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
_SERVER["CommonProgramFiles"] C:\Program Files (x86)\Common Files
_SERVER["CommonProgramFiles(x86)"] C:\Program Files (x86)\Common Files
_SERVER["CommonProgramW6432"] C:\Program Files\Common Files
_SERVER["COMPUTERNAME"] ACER-PC
_SERVER["ComSpec"] C:\Windows\system32\cmd.exe
_SERVER["FP_NO_HOST_CHECK"] NO
_SERVER["HOMEDRIVE"] C:
_SERVER["HOMEPATH"] \Users\Acer
_SERVER["LOCALAPPDATA"] C:\Users\Acer\AppData\Local
_SERVER["LOGONSERVER"] \\ACER-PC
_SERVER["MOZ_PLUGIN_PATH"] C:\Program Files\Tracker Software\PDF Viewer\Win32\
_SERVER["NTIPath"] C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\NewTech Infosystems\NTI Backup Now 5\;
_SERVER["NUMBER_OF_PROCESSORS"] 4
_SERVER["OS"] Windows_NT
_SERVER["Path"] C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x86;C:\Program Files (x86)\EgisTec\MyWinLocker 3\x64;C:\Program Files (x86)\Windows Live\Shared;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\Tools\Binn;c:\Program Files\Microsoft SQL Server\100\DTS\Binn;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn;C:\Program Files (x86)\WinSCP;C:\svn\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Smart Projects\IsoBuster;C:\Program Files (x86)\QuickTime\QTSystem;C:\Program Files (x86)\Bitvise Tunnelier;C:\Program Files (x86)\Common Files\SYSTEM\MSMAPI\1033;C:\Program Files (x86)\WinSCP\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Users\Acer\AppData\Roaming\PEAR;C:\Users\Acer\AppData\Roaming\PEAR\pear\PHPUnit;C:\RailsInstaller\Git\cmd;C:\RailsInstaller\Ruby1.9.3\bin;C:\Ruby192\bin;C:\Program Files\Java\jdk1.7.0\bin; C:\Program Files (x86)\IDM Computer Solutions\UltraEdit\;C:\Program Files (x86)\HMA! Pro VPN\bin;C:\SocketeQ\windowsandroid_root\system\bin;C:\SocketeQ\windowsandroid_root\system\lib
_SERVER["PATHEXT"] .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.RB;.RBW
_SERVER["Pathtem"] C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\
_SERVER["PHPRC"] no value
_SERVER["PHPRC~"] C:\PHP5\
_SERVER["PHP_PEAR_BIN_DIR"] C:\Users\Acer\AppData\Roaming\PEAR
_SERVER["PHP_PEAR_DATA_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\data
_SERVER["PHP_PEAR_DOC_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\docs
_SERVER["PHP_PEAR_INSTALL_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\pear
_SERVER["PHP_PEAR_PHP_BIN"] C:\Program Files (x86)\NuSphere\PhpED\php54\php.exe
_SERVER["PHP_PEAR_SYSCONF_DIR"] C:\Users\Acer\AppData\Roaming\PEAR
_SERVER["PHP_PEAR_TEST_DIR"] C:\Users\Acer\AppData\Roaming\PEAR\tests
_SERVER["PROCESSOR_ARCHITECTURE"] x86
_SERVER["PROCESSOR_ARCHITEW6432"] AMD64
_SERVER["PROCESSOR_IDENTIFIER"] Intel64 Family 6 Model 37 Stepping 2, GenuineIntel
_SERVER["PROCESSOR_LEVEL"] 6
_SERVER["PROCESSOR_REVISION"] 2502
_SERVER["ProgramData"] C:\ProgramData
_SERVER["ProgramFiles"] C:\Program Files (x86)
_SERVER["ProgramFiles(x86)"] C:\Program Files (x86)
_SERVER["ProgramW6432"] C:\Program Files
_SERVER["PSModulePath"] C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
_SERVER["PUBLIC"] C:\Users\Public
_SERVER["QTJAVA"] C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
_SERVER["SESSIONNAME"] Console
_SERVER["SystemDrive"] C:
_SERVER["SystemRoot"] C:\Windows
_SERVER["TEMP"] C:\Users\Acer\AppData\Local\Temp
_SERVER["TMP"] C:\Users\Acer\AppData\Local\Temp
_SERVER["USERDOMAIN"] Acer-PC
_SERVER["USERNAME"] Acer
_SERVER["USERPROFILE"] C:\Users\Acer
_SERVER["windir"] C:\Windows
_SERVER["WINDOWSANDROID_ROOT"] C:\SocketeQ\windowsandroid_root
_SERVER["PHP_FCGI_MAX_REQUESTS"] 250
_SERVER["ORIG_SCRIPT_NAME"] /php/php-cgi.exe
_SERVER["ORIG_PATH_TRANSLATED"] C:\wamp\www\phpvqp3_scripts\ch06\php.php
_SERVER["ORIG_PATH_INFO"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php
_SERVER["ORIG_SCRIPT_FILENAME"] C:/Program Files (x86)/NuSphere/PhpED/php54/php-cgi.exe
_SERVER["QUERY_STRING"] DBGSESSID=-1
_SERVER["REQUEST_METHOD"] GET
_SERVER["SERVER_PROTOCOL"] HTTP/1.1
_SERVER["GATEWAY_INTERFACE"] CGI/1.1
_SERVER["SERVER_PORT"] 8103
_SERVER["SERVER_NAME"] localhost
_SERVER["SERVER_SOFTWARE"] Srv/12.0.0.12045
_SERVER["HTTP_COOKIE"] DBGSESSID=; PHPSESSID=g0j7o618up25l5oqsghdisb277
_SERVER["HTTP_USER_AGENT"] Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/7.0; Tablet PC 2.0; .NET4.0C; .NET4.0E)
_SERVER["HTTP_CONNECTION"] Keep-Alive
_SERVER["HTTP_HOST"] localhost:8103
_SERVER["HTTP_ACCEPT_LANGUAGE"] en-US
_SERVER["HTTP_ACCEPT_ENCODING"] gzip, deflate
_SERVER["HTTP_ACCEPT"] application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
_SERVER["REMOTE_PORT"] 44081
_SERVER["REMOTE_ADDR"] 127.0.0.1
_SERVER["SERVER_ADDR"] 127.0.0.1
_SERVER["DOCUMENT_ROOT"] C:\wamp\www\phpvqp3_scripts\ch06
_SERVER["REQUEST_URI"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php?DBGSESSID=-1
_SERVER["SCRIPT_NAME"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php
_SERVER["SCRIPT_FILENAME"] C:\wamp\www\phpvqp3_scripts\ch06\php.php
_SERVER["REDIRECT_URL"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php
_SERVER["REDIRECT_STATUS"] 200
_SERVER["REDIRECT_QUERY_STRING"] DBGSESSID=-1
_SERVER["FCGI_ROLE"] RESPONDER
_SERVER["PHP_SELF"] /file:/C:/wamp/www/phpvqp3_scripts/ch06/php.php
_SERVER["REQUEST_TIME_FLOAT"] 1395703047.8029
_SERVER["REQUEST_TIME"] 1395703047
PHP License
This program is free software; you can redistribute it and/or modify it under the terms of the PHP License as published by the PHP Group and included in the distribution in the file: LICENSE
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
If you did not receive a copy of the PHP license, or have any questions about PHP licensing, please contact license@php.net.
ASKER
error_reporting: 32767
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
error_reporting: 32767That should cover everything and at least raise a Notice if your code attempts to rely on an undefined variable. If there is an expected Notice and you don't get the Notice, consider the possibility that there is a logic error or that you're testing the wrong copy of the script.
You probably want to understand the PHP Exception concepts and the Exception Object:
http://www.php.net/manual/en/language.exceptions.php
http://www.php.net/manual/en/class.exception.php
You can translate errors to exceptions:
http://www.php.net/manual/en/class.errorexception.php
See Example One here:
http://www.php.net/manual/en/language.exceptions.php
ASKER
the "shopProduct is not defined yet" is NOT an exception or fatal error, (warning I think) , SO no try catch is performedSo this is why there is no catch?
That should cover everything and at least raise a Notice if your code attempts to rely on an undefined variable. If there is an expected Notice and you don't get the Notice, consider the possibility that there is a logic error or that you're testing the wrong copy of the script.
Where
<?php
function inverse($x) {
if (!$x) {
throw new Exception('Division by zero.');
}
return 1/$x;
}
try {
echo inverse(5) . "\n";
echo inverse(0) . "\n";
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
// Continue execution
echo "Hello World\n";
?>
0.2 Caught exception: Division by zero. Hello World
good example
ASKER
Did I provide the proper answer?
?? don't know? - - you ask - "Did I provide the proper answer?"
But answers depend on what the question is.
This PHP Class teaching lesson from "matt zandstra php objects patterns and practice" is just to show you (the student), The proper "code lines" to use the "try - catch", AND to write the code to do what is called "Throw an Exception", and having your own "Special" Exception "ERROR MESSAGE" as you use this like of code -
throw new Exception('Division by zero.');
so you seem to now know how to write the code as -
throw new Exception('The CUSTOM Error message here')
to have your own Exception generated, and END the code progression with a fatal PHP exception error.
You also seem to know the code to use for a PHP "try - catch" operation.
So in that respect, I guess you have learned the main point of this Class Tutorial lesson.
You have even been told that the "warnings and notices" from the PHP code error monitor, ARE NOT exceptions, and do not effect the PHP "try - catch" operation. A good thing to know about.
I would add, it seems important to me to study and look at (the PHP Manual) and others code work for a "Useful and NOT SIMPLE Class Coding", to try and learn "WHY and WHEN" you would use the code -
throw new Exception( )
in a Class Method,
and Why and When you would place a PHP "try - catch" block of code in a Class Method OR in your operational code using your Class Objects.
But answers depend on what the question is.
This PHP Class teaching lesson from "matt zandstra php objects patterns and practice" is just to show you (the student), The proper "code lines" to use the "try - catch", AND to write the code to do what is called "Throw an Exception", and having your own "Special" Exception "ERROR MESSAGE" as you use this like of code -
throw new Exception('Division by zero.');
so you seem to now know how to write the code as -
throw new Exception('The CUSTOM Error message here')
to have your own Exception generated, and END the code progression with a fatal PHP exception error.
You also seem to know the code to use for a PHP "try - catch" operation.
So in that respect, I guess you have learned the main point of this Class Tutorial lesson.
You have even been told that the "warnings and notices" from the PHP code error monitor, ARE NOT exceptions, and do not effect the PHP "try - catch" operation. A good thing to know about.
I would add, it seems important to me to study and look at (the PHP Manual) and others code work for a "Useful and NOT SIMPLE Class Coding", to try and learn "WHY and WHEN" you would use the code -
throw new Exception( )
in a Class Method,
and Why and When you would place a PHP "try - catch" block of code in a Class Method OR in your operational code using your Class Objects.
ASKER
try and catch DOES not catch genreral errors, it catches EXCEPTIONS, which show up as FATAL PHP ERRORS
looking back the answer was here.
I just had to ask more questions to see it.
looking back the answer was here.
I just had to ask more questions to see it.