Нет простого способа выполнить множественное наследование класса. Я следую комбинации ассоциации и наследования для достижения такого поведения.
class Person {
constructor(firstname, lastname, age){
this.firstname = firstname,
this.lastname = lastname
this.Age = age
}
fullname(){
return this.firstname +" " + this.lastname;
}
}
class Organization {
constructor(orgname){
this.orgname = orgname;
}
}
class Employee extends Person{
constructor(firstname, lastname, age,id) {
super(firstname, lastname, age);
this.id = id;
}
}
var emp = new Employee("John", "Doe", 33,12345);
Object.assign(emp, new Organization("Innovate"));
console.log(emp.id);
console.log(emp.orgname);
console.log(emp.fullname());
Надеюсь, что это будет полезно.
Смотря более тесно на мой настроенный web.config, один из комментариев в это сообщение очень полезно
в asp.net 3,5 sp1, там новый параметр redirectMode
, Таким образом, мы можем исправить customErrors
для добавления этого параметра:
<customErrors mode="RemoteOnly" defaultRedirect="~/errors/GeneralError.aspx" redirectMode="ResponseRewrite" />
ResponseRewrite
режим позволяет нам загружать В «Ошибка PageВ», не перенаправляя браузер, таким образом, URL остается таким же, и значительно для меня, информация об исключении не потеряна.
Хорошо, я нашел это сообщение: http://msdn.microsoft.com/en-us/library/aa479319.aspx
с этой очень иллюстративной схемой:
схема http://i.msdn.microsoft.com/Aa479319.customerrors_01 (en-us, MSDN 10) .gif
в сущности, для достигания тех, которые детализирует исключение, я должен сохранить их сам в Global.asax для более позднего извлечения на моей пользовательской ошибочной странице.
кажется, что лучший способ состоит в том, чтобы сделать объем работы в Global.asax с пользовательскими ошибочными страницами, обрабатывающими полезное содержание, а не логику.
Я думаю, что у Вас есть несколько опций здесь.
Вы могли сохранить последнее Исключение на Сессии и получить его от Вашей пользовательской ошибочной страницы; или Вы могли просто перенаправить к своей пользовательской ошибочной странице в событии Application_error. При выборе последнего Вы хотите удостовериться, что Вы используете Сервер. Метод передачи.
Комбинация того, что заявили NailItDown и Victor. Предпочтительный/самый легкий путь состоит в том, чтобы использовать Ваше Глобальное. Asax, чтобы сохранить ошибку и затем перенаправить к Вашей пользовательской ошибочной странице.
Global.asax:
void Application_Error(object sender, EventArgs e)
{
// Code that runs when an unhandled error occurs
Exception ex = Server.GetLastError();
Application["TheException"] = ex; //store the error for later
Server.ClearError(); //clear the error so we can continue onwards
Response.Redirect("~/myErrorPage.aspx"); //direct user to error page
}
, Кроме того, необходимо настроить Ваш web.config:
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="~/myErrorPage.aspx">
</customErrors>
</system.web>
И наконец, сделайте то, что Вы должны за исключением, которое Вы сохранили в Вашем ошибочная страница :
protected void Page_Load(object sender, EventArgs e)
{
// ... do stuff ...
//we caught an exception in our Global.asax, do stuff with it.
Exception caughtException = (Exception)Application["TheException"];
//... do stuff ...
}
Попробуйте использовать что-то вроде Server.Transfer ("~ / ErrorPage.aspx");
из метода Application_Error ()
global.asax .cs
Тогда из Page_Load ()
ErrorPage.aspx.cs вы можете сделать что-то вроде: Exception exception = Server.GetLastError (). GetBaseException ();
Server.Transfer ()
, кажется, сохраняет исключение вокруг.
Одно важное соображение, которое, я думаю, всем здесь отсутствует сценарий балансировки нагрузки (веб-ферма). Поскольку сервер, на котором выполняется global.asax, может отличаться от сервера, на котором выполняется пользовательская страница ошибки, сохранение объекта исключения в Application ненадежно.
Я все еще ищу надежное решение этой проблемы в конфигурации веб-фермы и / или хорошее объяснение от MS, почему вы просто не можете получить исключение с помощью Server.GetLastError на странице настраиваемой ошибки. как вы можете в global.asax Application_Error.
P.S. Небезопасно хранить данные в коллекции Application без предварительной блокировки, а затем разблокировки.