我一直用Java做这种事情,我想弄清楚它是否可以在PHP中使用。这就是我希望语法看起来像是可能的,但我想知道是否有一些特殊的方法(如果有可能的话)。
class Foo {
public static class FooBarException extends Exception {
}
public static class BarBazException extends Exception {
}
public function DoSomething() {
try {
// Calls to other class methods that can
// throw FooBarException and BarBazException
} catch (self::FooBarException $e) {
// Stuff..
}
}
}
$bang = new Foo();
try {
$bang->DoSomething();
} catch (Foo::BarBazException $e) {
// Stuff..
}
答案 0 :(得分:3)
<?php
namespace MyNamespace
{
use Exception;
class FooBarException
extends Exception
{
}
class FooBazException
extends Exception
{
}
class Foo
{
public function doSomething()
{
throw new FooBarException;
}
}
}
namespace AnotherNamespace
{
$bang = new \MyNamespace\Foo;
try {
$bang->doSomething();
} catch(\MyNamespace\FooBarException $up) {
throw $up; // :)
}
}
答案 1 :(得分:1)
不,这是不可能的。
但是,您可以使用命名空间来获得类似的效果。
答案 2 :(得分:1)
你不能用PHP做,但在php 5.3中你可以使用命名空间来实现类似的功能