我有两个点(一个线段)和一个矩形.我想知道如何计算线段是否与矩形相交.
我是php的新手,当我在寻找如何使用套接字的例子时,我注意到它们都没有包含异常处理代码.
首先我认为也许php没有例外......但谷歌告诉我不然.有很多文章赞扬在php中使用异常(我来自Java和C#,我是一个转换过的)但是,在实例中,似乎没有人关心trys/catches.
是因为php在以前的版本中没有例外吗?
示例(伪代码):
$fp = fsockopen($allTheNeededParams);
if(!$fp){
//error handling
}
fwrite($fp, $out);//<-what if something goes wrong here? the socket is never closed?
fclose($fp);
Run Code Online (Sandbox Code Playgroud)
在其他语言中,当你处理套接字时,你会看到try/catch到处都是.为什么不在PHP?
StackOverflow的两个例子:
谢谢你的时间!
我有一个Angular 6客户端,它使用通过.Net Web Api开发的REST Api。
除错误处理外,其他所有东西都在工作。当我尝试处理错误以对不同的状态码(404、403、409、500 ...)做出不同反应时,我简直无法使其正常工作。HttpErrorResponse对象没有应假定的任何字段(例如“状态”或“错误”)。
我提供了一个超级简单的服务来重现该问题:
在service.ts上请求
public test(): Observable<any> {
let url = this.templatesUrl + '/myMethod';
console.log('GET myMethod ' + url);
return this.http.get<any>(url)
.pipe(catchError(this.handleError));
}
Run Code Online (Sandbox Code Playgroud)
错误处理程序(与官方文档相当直接):
private handleError(error: HttpErrorResponse) {
console.warn(error);
if (error.error instanceof ErrorEvent) {
// A client-side or network error occurred. Handle it accordingly.
console.error('An error occurred:', error.error.message);
} else {
// The backend returned an unsuccessful response code.
// The response body may contain clues as to what went wrong,
console.error(
`Backend returned code …Run Code Online (Sandbox Code Playgroud) 我试图在模态对话框中显示错误,但我是一个完整的 Angular 新手,我被卡住了。
该项目已经使用引导程序,所以我尝试使用 NgbModal:
// in ErrorHandler
handleError(error: Error) {
//do other stuff
console.error(error);
this.modalService.open(ErrorDisplayComponent, //problems here
{
//modal options
});
}
Run Code Online (Sandbox Code Playgroud)
这会导致错误:
Uncaught TypeError: Cannot read property 'open' of undefined
at NgbModal.push../node_modules/@ng-bootstrap/ng-bootstrap/fesm5/ng-bootstrap.js.NgbModal.open
Run Code Online (Sandbox Code Playgroud)
似乎 open 方法对 ErrorDisplayComponent 参数不满意。
即使这样有效,我也不知道如何将错误变量传递给 ErrorDisplayComponent(但如果我让它工作,我会处理这个问题)。
根据文档(https://ng-bootstrap.github.io/#/components/modal/api)“内容 [用于 open() 方法] 可以作为 TemplateRef 或组件类型提供。”
也许我应该尝试使用 TemplateRef 选项(但我不知道如何即时创建 TemplateRef),或者这种方法是错误的,我应该做其他事情。但由于我什至不知道行话,谷歌搜索答案并不容易。
有任何想法吗?
提前致谢!
更新:完整代码
错误处理程序.ts
import { ErrorHandler, Injectable, Injector} from '@angular/core';
import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { ErrorDisplayComponent } from './errors/error-display/error-display.component';
@Injectable() …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个可以同时接收集合和排序策略的排序方法.
我可以简单地收到一个IComparer,但我更愿意列举一些可能的排序策略.来电者必须从那里挑选他们的.
就像是:
public enum SortingStrategies { ByAgeDesc, ByAgeAsc, ByIncomeDesc, ByInconmeAsc };
Run Code Online (Sandbox Code Playgroud)
其中每一个(ByAgeDesc,ByAgeAsc ......)都是IComparer.
然后调用排序方法将是:
myObject.SortCollection(myCollection, SortingStrategies.ByIncomeDesc);
Run Code Online (Sandbox Code Playgroud)
是否可以创建实例枚举?这是个好主意吗?
提前致谢!