<?php declare( strict_types=1 ); namespace Automattic\WooCommerce\GoogleListingsAndAds\View; use Automattic\WooCommerce\GoogleListingsAndAds\Exception\GoogleListingsAndAdsException; use Exception; defined( 'ABSPATH' ) || exit; /** * Class ViewException * * @package Automattic\WooCommerce\GoogleListingsAndAds\Exception */ class ViewException extends Exception implements GoogleListingsAndAdsException { /** * Create a new instance of the exception if the view file itself created * an exception. * * @param string $uri URI of the file that is not accessible or * not readable. * @param Exception $exception Exception that was thrown by the view file. * * @return static */ public static function invalid_view_exception( string $uri, Exception $exception ) { $message = sprintf( 'Could not load the View URI "%1$s". Reason: "%2$s".', $uri, $exception->getMessage() ); return new static( $message, (int) $exception->getCode(), $exception ); } /** * Create a new instance of the exception for a file that is not accessible * or not readable. * * @param string $path Path of the file that is not accessible or not * readable. * * @return static */ public static function invalid_path( $path ) { $message = sprintf( 'The view path "%s" is not accessible or readable.', $path ); return new static( $message ); } /** * Create a new instance of the exception for a context property that is * not recognized. * * @param string $property Name of the context property that was not recognized. * * @return static */ public static function invalid_context_property( string $property ) { $message = sprintf( 'The property "%s" could not be found within the context of the currently rendered view.', $property ); return new static( $message ); } }