From: Jeremy Thurgood Date: 2008-02-10T19:00:01+09:00 Subject: Re: Timeout::Error This is a cryptographically signed message in MIME format. --------------ms050401040805090202090902 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Daniel DeLorme wrote: > What about the reverse problem? A lazy programmer might do a catch-all > rescue which would then catch unexpected inner exceptions which were not > meant to be rescued. i.e. > > begin > Timeout.timeout(1) do > 1 / 0 #oops! > end > rescue > #silently ignore timeout > #...but ignores division by zero too! > end > > *That* might be the reason why Timeout::Error was not made a subclass of > StandardError. This is no different from any other exception. If you're silently swallowing errors, you're asking for pain no matter what gets thrown. At some point, you need to treat programmers like adults and give them the tools they need without trying to hold their hands or strap them in. If you take this thought to its logical conclusion, all exceptions will need to be caught individually and then /anything/ you didn't think of catching could filter up the stack and crash your app. --J -- --------------ms050401040805090202090902 Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJaTCC Aw8wggJ4oAMCAQICEDvKk1SqBf0E1mZzHbJoRUwwDQYJKoZIhvcNAQEFBQAwYjELMAkGA1UE BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBMB4XDTA3MTIwOTE0MjYxNloX DTA4MTIwODE0MjYxNlowczERMA8GA1UEBBMIVGh1cmdvb2QxFzAVBgNVBCoTDkplcmVteSBS aWNoYXJkMSAwHgYDVQQDExdKZXJlbXkgUmljaGFyZCBUaHVyZ29vZDEjMCEGCSqGSIb3DQEJ ARYUamVyaXRoQGplcml0aC56YS5uZXQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDD85piSEhUurBsZehSQXZoctIsKyBx0RfWgqsndQ56eONkijBLKoyBkE8VZo7j5ZZ5T/on uUIgGcNQx2FvwJRECOB8GskLQCF0oPZ918LVYtGIgc45h4McdLsqUU/GRx3v73ccLTpGYpb8 CfFU6N47IQU/ItsgzefQ0lCUbdfRCzLSNGKCXrcOqBzN0fctPwChRFths6OL1THsQsbUGIfi yIhz3O7U7Afb06FaY4T8rQUkON9M5Gp94z5eikSNpC21e7KVj0vMWudQigKFexeKye3rdAYv yfJ4VvRRtm5fjLD8/Jrt9dBNU5+0b399CE0N4ZcXpdu/Y7laXluTNKRRAgMBAAGjMTAvMB8G A1UdEQQYMBaBFGplcml0aEBqZXJpdGguemEubmV0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcN AQEFBQADgYEAZbNewFKDYiJK7C28bfxWUm7EveYrvCHH1iZcsl3bak9Ha0JK57yCUYahUfoa siTBL/m0HkLbAhCEp5tjoTGCWcZVZ5gc0BNE8mUkYTWEKESkXKtk9nayFUHbIS9mrLO/GSHJ zow/BOT0gikPmV43CT6gd8pj9ercq08bby6wMpAwggMPMIICeKADAgECAhA7ypNUqgX9BNZm cx2yaEVMMA0GCSqGSIb3DQEBBQUAMGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUg Q29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1h aWwgSXNzdWluZyBDQTAeFw0wNzEyMDkxNDI2MTZaFw0wODEyMDgxNDI2MTZaMHMxETAPBgNV BAQTCFRodXJnb29kMRcwFQYDVQQqEw5KZXJlbXkgUmljaGFyZDEgMB4GA1UEAxMXSmVyZW15 IFJpY2hhcmQgVGh1cmdvb2QxIzAhBgkqhkiG9w0BCQEWFGplcml0aEBqZXJpdGguemEubmV0 MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw/OaYkhIVLqwbGXoUkF2aHLSLCsg cdEX1oKrJ3UOenjjZIowSyqMgZBPFWaO4+WWeU/6J7lCIBnDUMdhb8CURAjgfBrJC0AhdKD2 fdfC1WLRiIHOOYeDHHS7KlFPxkcd7+93HC06RmKW/AnxVOjeOyEFPyLbIM3n0NJQlG3X0Qsy 0jRigl63DqgczdH3LT8AoURbYbOji9Ux7ELG1BiH4siIc9zu1OwH29OhWmOE/K0FJDjfTORq feM+XopEjaQttXuylY9LzFrnUIoChXsXisnt63QGL8nyeFb0UbZuX4yw/Pya7fXQTVOftG9/ fQhNDeGXF6Xbv2O5Wl5bkzSkUQIDAQABozEwLzAfBgNVHREEGDAWgRRqZXJpdGhAamVyaXRo LnphLm5ldDAMBgNVHRMBAf8EAjAAMA0GCSqGSIb3DQEBBQUAA4GBAGWzXsBSg2IiSuwtvG38 VlJuxL3mK7whx9YmXLJd22pPR2tCSue8glGGoVH6GrIkwS/5tB5C2wIQhKebY6ExglnGVWeY HNATRPJlJGE1hChEpFyrZPZ2shVB2yEvZqyzvxkhyc6MPwTk9IIpD5leNwk+oHfKY/Xq3KtP G28usDKQMIIDPzCCAqigAwIBAgIBDTANBgkqhkiG9w0BAQUFADCB0TELMAkGA1UEBhMCWkEx FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFU aGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZp c2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcN AQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUuY29tMB4XDTAzMDcxNzAwMDAwMFoXDTEz MDcxNjIzNTk1OVowYjELMAkGA1UEBhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5n IChQdHkpIEx0ZC4xLDAqBgNVBAMTI1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5n IENBMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEpjxVc1X7TrnKmVoeaMB1BHCd3+n/ ox7svc31W/Iadr1/DDph8r9RzgHU5VAKMNcCY1osiRVwjt3J8CuFWqo/cVbLrzwLB+fxH5E2 JCoTzyvV84J3PQO+K/67GD4Hv0CAAmTXp6a7n2XRxSpUhQ9IBH+nttE8YQRAHmQZcmC3+wID AQABo4GUMIGRMBIGA1UdEwEB/wQIMAYBAf8CAQAwQwYDVR0fBDwwOjA4oDagNIYyaHR0cDov L2NybC50aGF3dGUuY29tL1RoYXd0ZVBlcnNvbmFsRnJlZW1haWxDQS5jcmwwCwYDVR0PBAQD AgEGMCkGA1UdEQQiMCCkHjAcMRowGAYDVQQDExFQcml2YXRlTGFiZWwyLTEzODANBgkqhkiG 9w0BAQUFAAOBgQBIjNFQg+oLLswNo2asZw9/r6y+whehQ5aUnX9MIbj4Nh+qLZ82L8D0HFAg k3A8/a3hYWLD2ToZfoSxmRsAxRoLgnSeJVCUYsfbJ3FXJY3dqZw5jowgT2Vfldr394fWxghO rvbqNOUQGls1TXfjViF4gtwhGTXeJLHTHUb/XV9lTzGCA2QwggNgAgEBMHYwYjELMAkGA1UE BhMCWkExJTAjBgNVBAoTHFRoYXd0ZSBDb25zdWx0aW5nIChQdHkpIEx0ZC4xLDAqBgNVBAMT I1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBJc3N1aW5nIENBAhA7ypNUqgX9BNZmcx2yaEVM MAkGBSsOAwIaBQCgggHDMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkF MQ8XDTA4MDIxMDEwMDAwOVowIwYJKoZIhvcNAQkEMRYEFNUoj8RntUwerFrzc8Zp0l0+9Y60 MFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMA0GCCqGSIb3 DQMCAgFAMAcGBSsOAwIHMA0GCCqGSIb3DQMCAgEoMIGFBgkrBgEEAYI3EAQxeDB2MGIxCzAJ BgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYD VQQDEyNUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgSXNzdWluZyBDQQIQO8qTVKoF/QTWZnMd smhFTDCBhwYLKoZIhvcNAQkQAgsxeKB2MGIxCzAJBgNVBAYTAlpBMSUwIwYDVQQKExxUaGF3 dGUgQ29uc3VsdGluZyAoUHR5KSBMdGQuMSwwKgYDVQQDEyNUaGF3dGUgUGVyc29uYWwgRnJl ZW1haWwgSXNzdWluZyBDQQIQO8qTVKoF/QTWZnMdsmhFTDANBgkqhkiG9w0BAQEFAASCAQCa 2+UH9gMVnaV6QOwWUJcZCa7O6PGnwYO9/h9eED5XI9XAo7cTp+iXz7OD/47R5Xfx7aHXLw8B O7C/sP9LDz3Aywyjp3/+aVpQm+GcK6MtJWN20B/ICAKOvchemU0h5OyuatUY+weHaFM0CSap dmi1QUoIQYCdvzrQkxzX2USIQrjfofVOwNRJyUgblVL2GepNz68Sr6uK9qCsoMkKi/VHla/t tb4GzHf4YFn0wZanLXp3ambKlHg7sS08zX3m69mJ71QHI8s1ipd+I3Ig7DX0QTcKrE1CjVkr KXOODuPDebAFckhEfhLaTP1mZuM0KD/XsfypKc+9y3S9GqbZaa2kAAAAAAAA --------------ms050401040805090202090902--